pandas DataFrame apply()函数
Posted 流浪猫の窝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas DataFrame apply()函数相关的知识,希望对你有一定的参考价值。
上一篇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()函数的主要内容,如果未能解决你的问题,请参考以下文章
pandas使用apply函数:在dataframe数据列(column)上施加(apply)函数