Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在考虑列的唯一值时,按groupby计算的平均聚合_Python_Pandas_Pandas Groupby - Fatal编程技术网

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视为唯一值。未来的道路是什么?