比较熊猫中的id日期组合

时间:2020-09-14 07:36:29

标签: python-3.x pandas dataframe compare

我是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

对此有什么好的思考方式?

谢谢!

2 个答案:

答案 0 :(得分:3)

方法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')

答案 1 :(得分:2)

您可以在<h1>@_config["Company:Name"]</h1>上使用pd.merge()来比较id列,并通过传递dates来获得两个max列中的date 。这将返回axis=1True。然后,您可以执行False分别从astype(int)True更改为False1

0