我正在积累Pandas的经验并且遇到了这个挑战:我有一个源数据框,比如df_source,列有'A','B','C' . 我想按'A'和'B'进行分组,每组根据'C'的所有值进行计算 . 结果应该是一个新的附加列'D' .
def myfunc(df, par):
{some complex calculation based on all values of df['C']}
return [dataframe or column]
df_source['D'] = df_source.groupby(['A', 'B']).{call myfunc per group, and pass parameter value}
我的问题:如何从这里移动创建一个列'D'?据我所知,apply适用于单行而不适用于组 .
在单个组内,每行可以具有不同的D值,例如,一个字符串'i-th element/n-elements in group' .
1 回答
我想你需要flexible apply:
另一种可能的解决方案是使用transform: