python - 根据另一个 Pandas Dataframe 的日期范围分配周数

标签 python pandas dataframe datetime

我正在尝试向 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/

相关文章:

python - 在python中将字典列表拆分为多个字典列表

python - 如何在类中使用 lambda 作为方法?

Python 模糊匹配(FuzzyWuzzy)——只保留最佳匹配

r - 将图像添加到R中的表格状输出中

python - 为什么我的 exe 文件不遵循脚本中的指定路径?

python - 如何添加两个 pandas 数据框并保留两个索引

python - 如何从 DataFrame 图中排除几列?

python - 如何使用与其他两列匹配的Python填充数据集中的空值?

r - 如何返回 R 中两个 data.frames 之间匹配行的索引

r - 如何将一个值添加到具有相同 id 的列中的所有值