Python 基于索引的两列和两个数据帧之间的差异

Python 基于索引的两列和两个数据帧之间的差异,python,pandas,dataframe,Python,Pandas,Dataframe,我想分析两个数据帧 df1: df2: 我想创建第三个数据帧,它只包含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 14

我想分析两个数据帧

df1:

df2:

我想创建第三个数据帧,它只包含
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(),但是我无法使它只比较相同的索引

谢谢

试试这个:

df3=(df1.join(df2,rsuffix=“\u 2”)
df3=df3.loc[df[“Time”!=df[“Time_2”]]
df3[“时间”]=df3[“时间”]-df3[“时间”]
df3=df3.下降([“时间2”、“日期2”、“城市2”],轴=1)

          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
          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
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)]