Python 在考虑列的唯一值时,按groupby计算的平均聚合
我有以下数据帧:Python 在考虑列的唯一值时,按groupby计算的平均聚合,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我有以下数据帧: 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
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列通过总和进行聚合,而第V3列和第V4列根据第S1列的唯一值进行平均
分组聚合如果直接使用,则不考虑列S1的唯一值。这方面的前进方向是什么?
我认为您需要按照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
我认为您需要按照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
如果直接使用,则不需要将列S1视为唯一值。未来的道路是什么?如果直接使用,则不需要将列S1视为唯一值。未来的道路是什么?