Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个包含许多列的表(数据框)。现在我想对其中一列的值进行平均。这意味着我需要对所有列进行分组,除了我需要平均的那一列。我当然可以写:
df.groupby(['col1', 'col2', 'col3', 'col4', 'col5'])['vals'].mean()
但如果我能做这样的事情会很好:
df.groupby(['col6'], something='reverse')['vals'].mean()
大熊猫有可能吗?
您正在搜索现有列表的补充列。你可以玩df.columns。它表示一个Index允许进行一些有趣操作的对象。
df.columns
Index
df.columns.drop(['col6'])返回一个Index删除作为参数传递的列的列表。您可以将其转换为列表并将其用作groupby参数:
df.columns.drop(['col6'])
groupby
df.groupby(df.columns.drop(['col6']).tolist())['vals'].mean()