如何在Python中按日期组合两个数据帧

2024-06-07 15:46:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经给出了两个数据帧

数据帧1:

^{tb1}$

第一个数据帧是一个.csv文件,其中包括2017-2021年间的所有假期。日期列是日期时间格式。如果同一天有多个假日,则假日的名称将写入所有Event、Event1和Event2列。事件、事件1和事件2列包括SpecialDay、PandemicHoliday和NationalHoliday值(3种类型的假日)

数据帧2:

^{tb2}$

第二个数据帧包含每日订单频率。日期列是日期时间格式

并非df2中的所有日期都存在于df1中

我想将第一个表中的Event、Event1和Event2列添加到第二个表中。第二个表包含来自同一日期的多个列。每个假日将作为一列添加到第二个表中。如何在python中实现这一点?结果表如下所示:

^{tb3}$

Tags: 文件csv数据名称event类型格式时间
1条回答
网友
1楼 · 发布于 2024-06-07 15:46:08

您可以使用pd.get_dummiesdf1进行热编码,然后merge

df2.merge(
    pd.get_dummies(df1.set_index('Date_DF1').stack()).sum(level=0),
    left_on='Date_DF2',
    right_index=True,
    how='left').fillna(0)

输出:

    Date_DF2  OrderTotal  OrderID  PandemicHoliday  SpecialDay
0 2021-01-01        68.5    31002                1           0
1 2021-01-01        56.5    31003                1           0
2 2021-01-01        98.5    31004                1           0
3 2021-01-02        78.5    31005                0           1

相关问题 更多 >

    热门问题