繁体   English   中英

如何使用 Pandas 中的条件合并两个数据帧?

[英]How to merge two data frames using condition in Pandas?

我有两张桌子

第一个表是:

钥匙 开始 结尾
23 2019 年 5 月 4 日 2020 年 1 月 23 日
15 2017 年 10 月 23 日 2018 年 6 月 23 日
03 2020 年 11 月 5 日 23/07/2022
11 2016 年 11 月 17 日 2018 年 10 月 23 日

第二张表是:

钥匙 日期 数量
11 2017 年 1 月 10 日 230
23 2019 年 11 月 14 日 100
03 2010 年 10 月 1 日 400
15 2018 年 5 月 30 日 830

如何使用 Pandas 合并这两个表,以便通过匹配关键字段并检查第二个表的日期是否在第一个表的开始和结束日期内来合并

所以合并后的 output 应该是:

钥匙 开始 结尾 日期 数量
23 2019 年 5 月 4 日 2020 年 1 月 23 日 2019 年 11 月 14 日 100
15 2017 年 10 月 23 日 2018 年 6 月 23 日 2018 年 5 月 30 日 830
03 2020 年 11 月 5 日 23/07/2022
11 2016 年 11 月 17 日 2018 年 10 月 23 日 2017 年 1 月 10 日 230

尝试这个

df_merge = pd.merge(df1, df2, on='key')
df_merge = df_merge.query('date >= start and date <= end')

df_out = df1.merge(df_merge, on=['start','end'], how='left').fillna('')
print(df_out)

暂无
暂无

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

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