2017-12-12 3 views
2

私はパンダでいくつかの操作をしようとしています。私は国のリストを持っており、各国ごとに毎年私は他の国からの移民の数に関するデータを持っています。たとえば、AUS 2000 AFG 11160.0は、2000年にオーストラリアのAfganishtanから11116人がいたことを意味します。マルチインデックスデータベースファイルの合計

大陸別に移民をグループ化するつもりですから、期待される結果はAUS 2000 Europeans 20000; Asians 16.000; Africans 3000...となります。これどうやってするの?あなたのデータフレームが 'COU'、 '年'、 'C​​O2' のマルチインデックスを持っている場合

   Foreigners 
COU Year CO2     
AUS 2000 AFG  11160.0 
     AGO  410.0 
     ALB  1530.0 
     AND  10.0 
     ARE  1390.0 
     ARG  11820.0 
     ARM  990.0 
AUS 2001 AFG 

答えて

2

、あなたが使用することができます。

df.sum(level=[0,1]) 

出力:

  Foreigners 
COU Year    
AUS 2000  27310.0 
    2001   1.0 

それとも場合をちょうど「COU」で合計したい年ではない:

df.sum(level=0) 

Outp ut:

 Foreigners 
COU    
AUS  27311.0 
+0

加算するものをフィルタリングできますか?例えば、AFGとAGOだけを集計しますが、残余は集計しません。 – Zanzag

+1

@Zanzagはい、 'query'を使用します。 ( "AFG"、 "AGO") ')の複数のdf.query(' CO2 '== "AFG"')sum(レベル= 0) 0) ' –

+0

ありがとうございました。 – Zanzag