我正在尝试向 df1 添加周 # 列。我想根据 df2 中找到的日期范围分配周数。
df1
WorkDate
2022-05-03
2022-05-16
2022-05-24
df2
Week # Week Start Week End
1 2022-05-01 2022-05-07
2 2022-05-08 2022-05-14
3 2022-05-15 2022-05-21
4 2022-05-22 2022-05-28
5 2022-05-29 2022-06-04
预期结果
final_df
WorkDate Week #
2022-05-03 1
2022-05-16 3
2022-05-24 4
最佳答案
尝试 pd.merge_asof
(注意:数据帧必须排序):
df1["WorkDate"] = pd.to_datetime(df1["WorkDate"])
df2["Week Start"] = pd.to_datetime(df2["Week Start"])
x = pd.merge_asof(df1, df2, left_on="WorkDate", right_on="Week Start")
print(x[["WorkDate", "Week #"]])
打印:
WorkDate Week #
0 2022-05-03 1
1 2022-05-16 3
2 2022-05-24 4
关于python - 根据另一个 Pandas Dataframe 的日期范围分配周数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74200509/