我有两个数据框,代表从两个不同的计步器中提取的数据,这些计步器记录特定月份某个人跑了多少英里。
我想计算DF 1和DF 2中具有相同“年份”和“人物”的行的“里程运行”的差异。例如,DF 1和DF 2具有Joe在1月份运行的里程以及Bob在2月份运行的里程。对于这两个常见行,我想计算两个“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
答案 0 :(得分:2)
使用set_index
并让Pandas使用内部数据对齐来执行减法:
(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