繁体   English   中英

Python pandas - 如何合并两个基于日期不一致的数据框?

[英]Python pandas - How do I merge two data frames based on dates that are not consistent in both?

我目前有两个非常大的数据集:

df1

                    created_at  PM1.0_CF1_ug/m3  ...  PM2.5_ATM_ug/m3  Unnamed: 9
0    2019-08-08 18:00:00+00:00             4.46  ...             8.78         NaN
1    2019-08-08 19:00:00+00:00             0.00  ...             0.00         NaN

df2

                    created_at  REF
0    2019-08-08 17:00:00+00:00             1.08
1    2019-08-08 18:00:00+00:00            84.31

并非df1中给出的所有created_at值都出现在df2中,这是一个比第一个更小的数据框。

我想做的是根据df2中给出的created_at值合并/加入两个表,并在合并表中有一个REF列,该列仅显示在最初在df2中的日期上。

这是我想要的一个例子:

                    created_at  PM1.0_CF1_ug/m3  ...  PM2.5_ATM_ug/m3  Unnamed: 9         REF
0    2019-08-08 18:00:00+00:00             4.46  ...             8.78         NaN       84.31
1    2019-08-08 19:00:00+00:00             0.00  ...             0.00         NaN         NaN

也许可以在 SQL 中执行此操作,然后将其转换为 pandas DF,但是我熟悉 SQL 连接。

谢谢!

您应该查看pd.merge_asof并指定容差。 或者,仅合并日期而不是日期时间。

在 SQL 中,您通常会使用left join来选择从df2中引入匹配的行:

select df1.*, df2.ref
from df1
left join df2 on df2.created_at = df1.created_at

df2中没有匹配项时,列ref将在结果集中显示为null

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM