我的DataFrame看起来像这样
exams = pd.DataFrame({'id1':['1x', '1x','2x','3x','3x'], 'id2':['a','a','b','a','a'],'data':[1,2,3,4,5]})
id1 id2 data
0 1x a 1
1 1x a 2
2 2x b 3
3 3x a 4
4 3x a 5
然后我将它汇总到
exams_agg = exams.groupby('id1').agg('mean')
然后exams_agg
看起来像
data
id1
1x 1.5
2x 3
3x 4.5
我想将id2
列重新连接到exams_agg
。所以我在考虑创建一个查找表
lookup = exams[['id1', 'id2']]
exams_agg = pd.merge(exams_agg, lookup, left_index=True, right_on='id1')
但由于lookup
包含重复的id对,exams_agg
也包含重复项。什么是创建
data id2
id1
1x 1.5 a
2x 3 b
3x 4.5 a
答案 0 :(得分:2)
如果唯一id1
始终与同一id2
对应,您只需在id2
中添加groupby
:
In [5]: df.groupby(['id1', 'id2']).agg('mean')
Out[5]:
data
id1 id2
1x a 1.5
2x b 3.0
3x a 4.5