首页 > 解决方案 > 基于索引的 2 列 2 数据帧之间的差异

问题描述

我有 2 个要分析的数据框。

df1:

          City         Time    Day
5866128   Los Angeles  3.5     01/09/2019
5172728   New York     14      09/09/2019
4787428   Boston       9       10/09/2019

df2:

          City         Time    Day
5866128   Los Angeles  3.5     01/09/2019
2478987   Denver       10      07/09/2019
5172728   New York     24      09/09/2019
4787428   Boston       4       10/09/2019
1478712   Austin       7       10/09/2019

我想创建第三个数据框,它只包含df2['Time']-df1['Time'] != 0基于索引的行和仅在 df2 中可用的行。

期望的输出:

          City         Time     Day
2478987   Denver       10       07/09/2019
5172728   New York     10       09/09/2019
4787428   Boston       -5       10/09/2019
1478712   Austin        7       10/09/2019

我尝试使用 numpy.where(),但我无法使其仅比较相同的索引。

谢谢

标签: pythonpandasdataframe

解决方案


df2['Time'] = df2['Time'].sub(df1['Time'], fill_value=0)
df2[df2.Time.ne(0)]

或者

df2.assign(Time = df2['Time'].sub(df1['Time'], fill_value= 0)).loc[lambda x:x.Time.ne(0)]

推荐阅读