2016-08-03 268 views
1

我的数据框看起来像这样蟒蛇大熊猫聚集

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 

回答

2

如果一个独特id1总是对应于同一id2一个很好的方式,你可以简单地在你的groupby添加id2

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 
+0

他们。非常感谢。我应该考虑一下。 – nos