如何“按组”将函数应用于数据框的每一列? IE。按一列的值进行分组并计算,例如表示每个组+其他列。预期的输出是带有索引的数据帧 - 不同组的名称,以及值 - 每个组+列的平均值
例如考虑:
df = pd.DataFrame(np.arange(16).reshape(4,4), columns=['A', 'B', 'C', 'D'])
df['group'] = ['a', 'a', 'b','b']
A B C D group
0 0 1 2 3 a
1 4 5 6 7 a
2 8 9 10 11 b
3 12 13 14 15 b
我想计算例如np.mean 对于每一列,但是“按组”, 在该特定示例中,可以通过以下方式完成:
t = df.groupby('group').agg({'A': np.mean, 'B': np.mean, 'C': np.mean, 'D': np.mean })
A B C D
group
a 2 3 4 5
b 10 11 12 13
但是,它需要显式使用列名 'A': np.mean、'B': np.mean、'C': np.mean、'D': np.mean 这对于我的任务来说是 Not Acceptable ,因为它们可以更改。
最佳答案
正如MaxU
所评论的更简单的是groupby
+ GroupBy.mean
:
df1 = df.groupby('group').mean()
print (df1)
A B C D
group
a 2 3 4 5
b 10 11 12 13
如果需要索引中的列:
df1 = df.groupby('group', as_index=False).mean()
print (df1)
group A B C D
0 a 2 3 4 5
1 b 10 11 12 13
关于python - 如何将函数 GROUPWISELY 应用于数据框的所有列? (在Python Pandas 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48744490/