2016-08-03 6 views
1

マイDATAFRAMEこののpythonパンダ集約

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にそれを集計列を再接続し、私はid2列を再接続したい

 data 
id1 
1x  1.5 
2x  3 
3x  4.5 

のように見えます〜exams_agg。だから、私は約ルックアップテーブル

lookup = exams[['id1', 'id2']] 
exams_agg = pd.merge(exams_agg, lookup, left_index=True, right_on='id1') 

を作成することを考えていた。しかしlookupは、IDの重複したペアが含まれているので、exams_aggも同様に重複が含まれています。ユニークid1は常に同じid2に対応している場合

 data id2 
id1 
1x  1.5  a 
2x  3  b 
3x  4.5  a 

答えて

2

を作成するための良い方法は何ですか、あなたは単にあなたのgroupbyid2を追加することができます:彼らは

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