我有一个计算 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)
然而这似乎对我不起作用。使用一个简单的例子:
> 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)