小编Sar*_*ahD的帖子

如何将 pandas 方法作为参数传递?

我有一个计算 pandas 数据框的列模式的函数:

def my_func(df):
    for col in df.columns:
        stat = df[col].mode()
        print(stat)
Run Code Online (Sandbox Code Playgroud)

但我想让它更通用,以便我可以更改我计算的统计数据,例如平均值,最大值,...我尝试将方法 mode() 作为参数传递给我的函数:

def my_func(df, pandas_stat):
    for col in df.columns:
        stat = df[col].pandas_stat()
        print(stat)
Run Code Online (Sandbox Code Playgroud)

参考:如何在 Python 中将方法作为参数传递

然而这似乎对我不起作用。使用一个简单的例子:

> A
     a    b
0  1.0  2.0
1  2.0  4.0
2  2.0  6.0
3  3.0  NaN
4  NaN  4.0
5  3.0  NaN
6  2.0  6.0
7  4.0  6.0
Run Code Online (Sandbox Code Playgroud)

它无法识别命令模式:

> my_func(A, mode)
Traceback (most recent call last):

  File "<ipython-input-332-c137de83a530>", line 1, in <module>
    my_func(A, mode)

NameError: name 'mode' …
Run Code Online (Sandbox Code Playgroud)

python parameter-passing pandas

2
推荐指数
1
解决办法
2221
查看次数

标签 统计

pandas ×1

parameter-passing ×1

python ×1