Python - 根据最近的日期匹配和附加列连接两个数据框

用户14128401

我有两个数据框需要在两列上连接,其中一列是日期列。但是,日期不匹配,如下例所示。我在其他帖子上看到有人使用 merge_of 进行类似的示例,但是在这里不起作用我相信因为我还需要加入另一个非日期列(pty)。我想将最接近的 alert_dt 输出到之前的 inv_dt或与 inv_dt 相同。第一次为我发帖,所以如果有任何不清楚的地方,请告诉我。

数据帧 A:

alert_dt 私人有限公司
01/06/2020 一种
08/06/2020 一种
12/06/2020 一种
27/06/2020 一种
12/06/2020
15/07/2020

数据帧 B:

|inv_dt | pty| |-----------|----| | 07/06/2020| 一个 | | 14/06/2020| 一个 | | 27/06/2020| 一个 | | 12/07/2020| 乙 | | 15/08/2020| 乙 | 期望输出:

inv_dt closest_alert_dt_before_inv_dt 私人有限公司
07/06/2020 01/06/2020 一种
14/06/2020 08/06/2020 一种
27/06/2020 27/06/2020 一种
12/07/2020 12/06/2020
15/08/2020 15/07/2020
耶斯列

我的输出在merge_asof方法上有点不同

df1['alert_dt'] = pd.to_datetime(df1['alert_dt'], dayfirst=True)
df2['inv_dt'] = pd.to_datetime(df2['inv_dt'], dayfirst=True)


df = pd.merge_asof(df2.sort_values('inv_dt'), 
                   df1.sort_values('alert_dt'), 
                   left_on='inv_dt', 
                   right_on='alert_dt', 
                   by='pty')
print (df)
      inv_dt pty   alert_dt
0 2020-06-07   A 2020-06-01
1 2020-06-14   A 2020-06-12
2 2020-06-27   A 2020-06-27
3 2020-07-12   B 2020-06-12
4 2020-08-15   B 2020-07-15

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python数据框:根据条件合并两个数据框(熊猫)

python pandas dataframe连接两个数据框

如何根据最近的日期合并两个数据框

根据两个数据框的最小值创建一个数据框pandas python

Python,Pandas匹配并在两个数据框中查找内容

根据排序的值匹配两个数组的元素(Python)

比较两个数据框并根据python或R中的条件存储值

python pandas-获取两个数据框之间的匹配和不匹配记录

根据最近的日期时间合并两个数据框

从python pandas中的两个数据框中连接选定的列

如何比较两个数据框的列并在Python Pandas中匹配时产生影响

Python / Pandas:比较两个数据框中的多列,如果找不到匹配项,则删除行

PYTHON-在日期索引上合并两个数据框

Python比较两个数据框的列并生成匹配行的索引

如果日期时间在彼此的特定时间内,则用Python连接两个数据集,并创建一个“不匹配”的数据集

Python-计算两个数据框的两列之间相等的元素数

Python Spark连接两个数据框并填充列

Python根据另一个数据框中的列值匹配列名

使用Pandas Python根据通用值合并两个数据框?

使用Python连接两个数据框

Python在多列和最近的日期时间上合并两个csv文件

根据索引和列连接两个数据框

如何使用python比较两个数据框并获取不匹配的行?

通过 Pyspark (Python) 上的内部连接和过滤条件连接两个数据帧

Python - 如何在 3 列上组合两个数据框并保留两个数据框中的列?

Python Pandas:如何根据日期组合或合并两个不同大小的数据框

如何映射和连接值两个数据框python

Python按几何条件合并/连接两个数据框

从python中的两个数据框中减去不匹配的列