我有以下数据框:
df:
S0 S1 V1 V2 V3 V4
A B 1 9 1 4
A B 2 8 1 4
A B 3 7 1 4
A B 4 6 1 4
A B 5 5 1 4
A B 6 4 1 4
A C 7 3 2 3
A C 8 2 2 3
A C 9 1 2 3
A C 9 0 2 3
我在这里进行分组,以汇总值并获得下表:
df:
S0 S1 V1 V2 V3 V4
A B 21 39 1 4
A C 33 6 2 3
第V1列和第V2列按和求和,而第S3列的唯一值则对V3列和V4列取平均值。
如果直接使用Groupby聚合,则不会将S1列视为唯一值。前进的方向是什么?
答案 0 :(得分:7)
我相信您需要按S0
和S1
进行汇总分组:
df1 = (df.groupby(['S0','S1'], as_index=False)
.agg({'V1':'sum','V2':'sum','V3':'mean','V4':'mean'}))
print (df1)
S0 S1 V1 V2 V3 V4
0 A B 21 39 1 4
1 A C 33 6 2 3