2列2个数据框之间基于索引的差异

时间:2019-09-10 11:56:49

标签: python pandas dataframe

我要分析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(),但只比较相同的索引却无法工作。

谢谢

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

尝试这个:

df3 = (df1.join(df2, rsuffix="_2") 
df3 = df3.loc[df["Time"]!=df["Time_2"]]
df3["Time"]=df3["Time_2"]-df3["Time"]
df3=df3.drop(["Time_2", "Day_2", "City_2"], axis=1)