我的数据框看起来像这样(两列col1,col2)
1 100
2 150
3 170
1 200
我想分组col1,
pd.DataFrame(combined.groupby('col1').aggregate(np.mean)['col2'])
这只返回一个只有一个键col2的数据帧,我实际上希望输出像这样(带有两列的数据帧)
col1,mean(col2),
有人可以指出我有什么能够实现这个目标吗?
答案 0 :(得分:0)
您可以使用groupby
汇总mean
和reset_index
:
print df.groupby('col1')['col2'].mean().reset_index()
col1 col2
0 1 150
1 2 150
2 3 170
groupby
的解决方案,其中包含[{3}}提到的参与者as_index=False
:
print df.groupby('col1', as_index=False)['col2'].mean()
col1 col2
0 1 150
1 2 150
2 3 170
John Galt
的解决方案:
print df.groupby('col1', as_index=False).aggregate({'col2':'mean'})
col1 col2
0 1 150
1 2 150
2 3 170