熊猫分组并在多列上应用函数

Lin*_*nda 5 python pandas pandas-groupby

如果我有一个函数f要多次应用于一组列,那么更Pythonic 的方法是什么?现在,我正在做的就是这个。

newdf=df.groupby(['a', 'b']).apply(lambda x: f(x, 1))
newdf.columns=['1']
newdf['2']=df.groupby(['a', 'b']).apply(lambda x: f(x, 2))
newdf['3']=df.groupby(['a', 'b']).apply(lambda x: f(x, 3))
newdf['4']=df.groupby(['a', 'b']).apply(lambda x: f(x, 4))
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来解决它?

谢谢,

Ner*_*ksi 1

你可以这样做:

pandas.DataFrame([df.groupby(['a','b']).apply(lambda x : f(x,i)) for i in range(1,5)])
Run Code Online (Sandbox Code Playgroud)

如果您希望与初始数据帧具有相同的列名称,则转置新的数据帧。