如何在Pandas中使用group-by?

时间:2016-04-08 04:09:11

标签: python pandas

我的数据框看起来像这样(两列col1,col2)

1 100
2 150
3 170
1 200

我想分组col1,

pd.DataFrame(combined.groupby('col1').aggregate(np.mean)['col2'])

这只返回一个只有一个键col2的数据帧,我实际上希望输出像这样(带有两列的数据帧)

col1,mean(col2), 

有人可以指出我有什么能够实现这个目标吗?

1 个答案:

答案 0 :(得分:0)

您可以使用groupby汇总meanreset_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

aggregate