当对Pandas DataFrame进行分组时,我应该何时使用
transform
,何时使用aggregate
?它们在实际应用中有何不同,你认为哪个更重要?transform
,何时使用aggregate
?它们在实际应用中有何不同,你认为哪个更重要?考虑数据框 df
df = pd.DataFrame(dict(A=list('aabb'), B=[1, 2, 3, 4], C=[0, 9, 0, 9]))
groupby
是标准的聚合使用方式。
df.groupby('A').mean()
如果您想要在整个组中广播这些值,并返回与原始索引相同的内容,
请使用transform
df.groupby('A').transform('mean')
df.set_index('A').groupby(level='A').transform('mean')
agg
用于在不同列上运行特定的操作或在同一列上运行多个操作。
df.groupby('A').agg(['mean', 'std'])
df.groupby('A').agg(dict(B='sum', C=['mean', 'prod']))
agg
,我如何将聚合后的列还原为原始数据框df
? - MACtransform
来拆分列。@MAC - Chris Coffee