如何解决比较熊猫中的id日期组合
我是Pandas的完整入门者,想知道如何比较一个数据帧中的行对组合与另一个数据帧。
我有df:
id dates
0 A 2000-01-01
1 B 2000-01-02
2 C 2000-01-03
,并想与df2进行比较:
id dates
0 A 2000-01-01
1 B 2000-01-03
2 C 2000-01-01
3 D 2000-01-04
4 E 2000-01-05
对于df2中的每个特定ID,它会将对应的日期与df1比较(并告诉我df1中的日期是否开启或晚于df2中的日期)
所以我应该得到:
id dates later
0 A 2000-01-01 1
1 B 2000-01-02 0
2 C 2000-01-03 1
对此有什么好的思考方式?
谢谢!
解决方法
方法1::您可以使用Series.map
根据df2
将日期从df1
映射到id
,然后使用{{ 1}}比较相应的日期:
Series.ge
方法2:将数据框df1['later'] = df1['dates'].ge(df1['id'].map(df2.set_index('id')['dates'])).view('i1')
与df1
左合并,然后使用df2
比较相应的日期:
Series.ge
df = df1.merge(df2,on='id',suffixes=['','_r'],how='left')
df['later'] = df['dates'].ge(df.pop('dates_r')).view('i1')
,
您可以在<h1>@_config["Company:Name"]</h1>
上使用pd.merge()
来比较id
列,并通过传递dates
来获得两个max
列中的date
。这将返回axis=1
或True
。然后,您可以执行False
分别从astype(int)
和True
更改为False
和1
:
0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。