我有两个 Dataframe df1和df2
DF1:
| 标识符|c_id|日|
| - ------|- ------|- ------|
| 1a|c1|2023年1月1日|
| 1b类|c1|二○二一年二月二十日|
| 1c|c2|二〇二二年十一月二十五日|
| 第1天|c2|2022年1月1日|
| 第1天|c2|二○二二年三月一日|
| 第1版|c3|2022年4月8日|
| 第1次|四碳|2022年6月12日|
以及
DF2:
| c_id|r_dt|
| - ------|- ------|
| c1|2023年1月1日|
| c1|2021年2月14日|
| c2|二〇二二年十一月二十五日|
| c2|2022年2月28日|
| c5|二〇二二年十一月十二日|
| 四碳|二○二二年六月六日|
我想要做的是,我想要两个 Dataframe 的c_id的精确匹配,然后,如果df1的"dt"小于"r_dt",则仅两个 Dataframe 合并。我想要以"内部"方式进行连接。
我的预期结果如下所示:结果_DF:
| 标识符|c_id|日|
| - ------|- ------|- ------|
| 1a|c1|2023年1月1日|
| 1b类|c1|二○二一年二月二十日|
| 1c|c2|二〇二二年十一月二十五日|
| 第1天|c2|2022年1月1日|
| 第1天|c2|二○二二年三月一日|
| 第1次|四碳|2022年6月12日|
我尝试了如下:
import pandas as pd
df1=pd.read_csv("my_csv1.csv")
df2=pd.read_csv("my_csv2.csv")
#merging
merge_df = pd.merge(df1,df2,how='inner',left_on=['c_id','dt'], right_on = ['c_id','r_dt'])
但这并没有给我确切的结果。它只是匹配确切的日期,它没有比较是否天差小于或等于7天或没有。请帮助。
1条答案
按热度按时间vfh0ocws1#
分两步来做:先合并ID,然后过滤,如