2017-07-19 124 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

完美地工作。谢谢 –