首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于索引的2列2数据帧之间的差异

基于索引的2列2数据帧之间的差异
EN

Stack Overflow用户
提问于 2019-09-10 19:56:49
回答 2查看 42关注 0票数 1

我有两个数据帧要分析。

df1:

代码语言:javascript
复制
          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:

代码语言:javascript
复制
          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中可用的行。

所需输出:

代码语言:javascript
复制
          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(),但我不能让它只比较相同的索引。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2019-09-10 20:51:31

代码语言:javascript
复制
df2['Time'] = df2['Time'].sub(df1['Time'], fill_value=0)
df2[df2.Time.ne(0)]

代码语言:javascript
复制
df2.assign(Time = df2['Time'].sub(df1['Time'], fill_value= 0)).loc[lambda x:x.Time.ne(0)]
票数 2
EN

Stack Overflow用户

发布于 2019-09-10 20:00:23

试试这个:

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57870302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档