码迷,mamicode.com
首页 > 移动开发 > 详细

pandas DataFrame apply()函数(2)

时间:2018-07-29 15:17:51      阅读:833      评论:0      收藏:0      [点我收藏+]

标签:value   def   pos   html   title   div   tps   return   用法   

上一篇pandas DataFrame apply()函数(1)说了如何通过apply函数对DataFrame进行转换,得到一个新的DataFrame.

这篇介绍DataFrame apply()函数的另一个用法,得到一个新的pandas Series:

apply()中的函数接收的参数为一行(列),把一行(列)通过计算,返回一个值,最后返回一个Series:

下图展示了把DataFrame的各列转换成一个数,最后返回成一个Series:

技术分享图片技术分享图片

 举个栗子:

import numpy as np
import pandas as pd

df = pd.DataFrame({
    a: [4, 5, 3, 1, 2],
    b: [20, 10, 40, 50, 30],
    c: [25, 20, 5, 15, 10]
})


# 对整个DataFrame应用np.mean()函数,取各列的平均值,返回一个包含了各列平均值的Series
print df.apply(np.mean) # 结果: a 3.0 b 30.0 c 15.0 dtype: float64
# 对整个DataFrame应用np.max()函数,取各列的最大值,返回一个包含了各列最大值的Series 
print df.apply(np.max) 

# 结果: a 5 b 50 c 25 dtype: int64

如果想要返回各列中第二大的数字组成的Series:

def get_second_largest(se):
    sorted_se = se.sort_values(ascending=False)
    return sorted_se.iloc[1]
    
def second_largest(df):
    return df.apply(get_second_largest)
    
print(second_largest(df))
a     4
b    40
c    20
dtype: int64

 

pandas DataFrame apply()函数(2)

标签:value   def   pos   html   title   div   tps   return   用法   

原文地址:https://www.cnblogs.com/liulangmao/p/9355633.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!