2017-07-19 14 views
2

2つの異なる歩数計から取得したデータを表す2つのデータフレームがあり、特定の人が特定の月に何マイル実行したかを記録します。2つのパンダデータフレームの行を列の値で比較する

"Month of Year"が "Person"のDF 1とDF 2の行の "Miles Run"の差異を計算したいとします。例えば、DF1とDF2はJoeが1月に走ったマイル数と2月にBobが走ったマイル数を持っています。これらの共通の行の両方について、私は両方のために異なる "Miles Run"がどのように計算されるかを計算したいと思います。

2つの一致する列の値を持つ2つのDFから行を引き出す方法はありますか?

DF 1:

Month of Year Miles Run Person 
    January  6.7458  Joe 
    February  1.3808  Bob 
    March  11.2689  Jill 
    April  9.8917  Sarah 

DF 2:

Month of Year Miles Run Person 
    November  5.5234  Andrew 
    December  7.4523  Kyle 
    January  9.1189  Joe 
    February  7.4343  Bob 

答えて

2

使用​​とパンダは減算を実行するために固有のデータアライメントを使用してみましょう:

(DF1.set_index(['Month of Year','Person']) - DF2.set_index(['Month of Year','Person'])).fillna(0) 

出力:

     Miles Run 
Month of Year Person   
April   Sarah  0.0000 
December  Kyle  0.0000 
February  Bob  -6.0535 
January  Joe  -2.3731 
March   Jill  0.0000 
November  Andrew  0.0000 
+1

完全に動作します。ありがとう –