我有一个包含许多列的表(数据框)。现在我想在其中一列中平均值。这意味着我需要将所有列分组,除了我需要平均的列。我当然可以写:
df.groupby(['col1', 'col2', 'col3', 'col4', 'col5'])['vals'].mean()
但是,如果我可以做类似的事情,那就太好了。
df.groupby(['col6'], something='reverse')['vals'].mean()
大熊猫有可能吗?
答案 0 :(得分:3)
您正在搜索手头列表中的补充列。您可以使用df.columns
。它代表一个Index
对象,允许一些有趣的操作。
df.columns.drop(['col6'])
返回Index
,并删除作为参数传递的列列表。您可以将其转换为列表并将其用作groupby
参数:
df.groupby(df.columns.drop(['col6']).tolist())['vals'].mean()