2017-07-19 129 views
2

我有兩個數據框表示從兩個不同的計步器拉取的數據,這些數據記錄了特定月份某個特定月份某人跑了多少英里。比較兩個熊貓數據幀的行列值

我想計算DF 1和DF 2中具有相同「年份」「Person」的行中「Miles Run」的差異。例如,DF 1和DF 2具有一月份Joe跑的里程和二月份跑Bob的幾英里。對於這兩種常見的行,我想要計算兩種「Miles Run」的不同之處。

任何想法如何從兩個具有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

完美地工作。謝謝 –