pandas DataFrame apply()函数(2)

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

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

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

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

pandas DataFrame apply()函数(2)

举个栗子:

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

Original: https://www.cnblogs.com/liulangmao/p/9355633.html
Author: 诗&远方
Title: pandas DataFrame apply()函数(2)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/9176/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总