![](/img/trans.png)
[英]Select a value from a 1 DataFrame , based on conditions from 2nd DataFrame and paste this value a new column in the 1st Dataframe
[英]Python Dataframe: To get a column value from 2nd dataframe based on a column in the 1st dataframe is in between two columns in the 2nd dataframe
您将需要修改 df2 ,使其在每个代码/年份的开始和结束范围之间的每一天都有一个新行。
您可以通过为每一行创建一个每日日期范围列表并将其分解为多行来做到这一点。 然后您可以简单地将两者合并在一起并获得您想要的结果。
这是一个小例子:
import pandas as pd
df = pd.DataFrame({'Code':[101],'weekEndingDate':['2022-07-01']})
df2 = pd.DataFrame({'Code':[101, 101], 'start':['2022-06-01', '2021-06-01'],'end':['2023-05-01', '2022-05-31'],'year':[2023, 2022]})
df['weekEndingDate'] = pd.to_datetime(df['weekEndingDate'])
df2['range'] = df2.apply(lambda x: pd.date_range(x.start,x.end, freq='D'), axis=1)
df2 = df2.explode('range')
df = df.merge(df2[['range','year']], left_on='weekEndingDate', right_on='range').drop(columns='range')
print(df)
Output
Code weekEndingDate year
0 101 2022-07-01 2023
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.