[英]How to combine two data frames using merge or VLOOKUP functionality in 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.