Python-Groupby-何时使用apply()/agg()
我最近遇到了一个有趣的问题,关于Pandas Groupby()中.agg()和.apply()之间的区别 它澄清了很多,但我仍然对何时使用.agg()和何时使用.apply()有点困惑 演示数据集:Python-Groupby-何时使用apply()/agg(),python,pandas,apply,aggregate-functions,user-defined-functions,Python,Pandas,Apply,Aggregate Functions,User Defined Functions,我最近遇到了一个有趣的问题,关于Pandas Groupby()中.agg()和.apply()之间的区别 它澄清了很多,但我仍然对何时使用.agg()和何时使用.apply()有点困惑 演示数据集: import pandas as pd import numpy as np df_min = pd.DataFrame({"A":[0.0,0.0,np.nan,0.0,0.42832,np.nan,0.62747,0.69856],
import pandas as pd
import numpy as np
df_min = pd.DataFrame({"A":[0.0,0.0,np.nan,0.0,0.42832,np.nan,0.62747,0.69856],
"B":[0.42832,0.69856,0.75865,0.42832,0.62747,0.27024,0.42832,np.nan],
"C":[0,0,1,0,0,0,0,0]})
目标:通过groupby语句填写np.nan
我的代码如下:
fill_na = lambda x: x.fillna(x.mean())
df_min.groupby('transportation_issues').apply(fill_na)
df_min.groupby('transportation_issues').agg(fill_na)
现在,当我应用.apply()时,代码完成了它的工作并得到了结果。但是当我使用.agg()时,ValueError发生如下情况:
ValueError:传递值的形状是(3,2),索引暗示(2,2)
所以,我的问题是:
1:为什么.agg()不起作用
2:通过应用.agg(),我应该如何使用户定义的函数工作
3:在groupby()上应用用户定义的函数时,我应该分别使用.apply()和.agg()的时间
4:在groupby()中,是否对整个数据集使用.apply()函数,对列使用agg()函数
5:在引擎盖下,.apply()和.agg()如何区分
非常感谢您回答我的问题,非常感谢您的帮助 在您的df中,哪一列是运输问题?请发布一个接近代码实际使用的数据样本。请参阅。
transform()
是否在“帮助”中构造?@nycorder嘿,传输问题代表演示数据集上的二进制列。@Parfait嘿,谢谢你的建议!在以后的问题中,我将遵循你帖子上的建议。
fill_na = lambda x: x.fillna(x.mean())
df_min.groupby('transportation_issues').apply(fill_na)
df_min.groupby('transportation_issues').agg(fill_na)