假设我有一个数据框(我将使用一个简单的示例),看起来像这样:
我应该翻译成:
import pandas as pd
df = {'Col1':[3,4,2,6,5,7,3,4,9,7,1,3],
'Col2':['B','B','B','B','A','A','A','A','C','C','C','C',],
'Col3':[1,1,2,2,1,1,2,2,1,1,2,2]}
df = pd.DataFrame(df)
这将得到一个数据框,如下所示:
Col1 Col2 Col3
0 3 B 1
1 4 B 1
2 2 B 2
3 6 B 2
4 5 A 1
5 7 A 1
6 3 A 2
7 4 A 2
8 9 C 1
9 7 C 1
10 1 C 2
11 3 C 2
我应该翻译成:
我想做的是几个步骤:
1)对于Col2中的每个唯一值和Col3中的每个唯一值,求Col1的平均值。因此,期望的输出如下:
Avg Col2 Col3
1 3.5 B 1
2 4 B 2
3 6 A 1
4 3.5 A 2
5 8 C 1
6 2 C 2
2)现在,针对Col3中的每个唯一值,我想要最高平均值和相应的Col2中的值。因此,
Best Avg Col2 Col3
1 8 C 1
2 4 B 2
我尝试使用 df.groupby(['Col3','Col2'], as_index = False).agg({'Col1':'mean'}).groupby(['Col3']).agg({'Col1':'max'})
这会给我每个 Col3 值的最高平均值,但不包括相应的 Col2 标签。感谢您能提供的任何帮助!