3

我有一个包含许多列的表(数据框)。现在我想对其中一列的值进行平均。这意味着我需要对所有列进行分组,除了我需要平均的那一列。我当然可以写:

df.groupby(['col1', 'col2', 'col3', 'col4', 'col5'])['vals'].mean()

但如果我能做这样的事情会很好:

df.groupby(['col6'], something='reverse')['vals'].mean()

大熊猫有可能吗?

4

1 回答 1

3

您正在搜索现有列表的补充列。你可以玩df.columns。它表示一个Index允许进行一些有趣操作的对象。

df.columns.drop(['col6'])返回一个Index删除作为参数传递的列的列表。您可以将其转换为列表并将其用作groupby参数:

df.groupby(df.columns.drop(['col6']).tolist())['vals'].mean()
于 2013-05-29T09:25:22.607 回答