以下是python中的数据帧:

|      date                   |     counter      |
|-----------------------------|------------------|
|  2022-01-01 10:00:02+00:00  |         34       |
|  2022-01-03 11:03:02+00:00  |         23       |
|  2022-02-01 12:00:05+00:00  |         12       |
|  2022-03-01 21:04:02+00:00  |         7        |
|      date                   |     holiday      |
|-----------------------------|------------------|
|  2022-01-01                 |       True       |
|  2022-01-02                 |       False      |
|  2022-01-03                 |       True       |
|  2022-02-01                 |       True       |
|  2022-02-02                 |       True       |
|  2022-02-03                 |       True       |
|  2022-03-01                 |       False      |
|  2022-03-02                 |       True       |
|  2022-03-03                 |       False      |

考虑到我不想创建带有日期的辅助列,如何合并这两个数据帧?

|      date                   |     counter      |   holiday    |
|-----------------------------|------------------|--------------|
|  2022-01-01 10:00:02+00:00  |         34       |    True      |
|  2022-01-03 11:03:02+00:00  |         23       |    True      |
|  2022-02-01 12:00:05+00:00  |         12       |    True      |
|  2022-03-01 21:04:02+00:00  |         7        |    False     |

提前感谢您的帮助.

推荐答案

Series.map与datetimes一起使用,而不使用times by Series.dt.normalize-则不会在df2输出中创建helper列:

df2['holiday'] = df2['date'].dt.normalize().map(df1.set_index('date')['holiday'])

另一个 idea 是merge_asof,但为了避免错误,需要删除Series.dt.tz_convert个时区:

df = pd.merge_asof(df1.assign(date = df1['date'].dt.tz_convert(None)).sort_values('date'), 
                   df2, on='date')
print (df)
                 date  counter  holiday
0 2022-01-01 10:00:02       34     True
1 2022-01-03 11:03:02       23     True
2 2022-02-01 12:00:05       12     True
3 2022-03-01 21:04:02        7    False

Python相关问答推荐

处理带有间隙(空)的duckDB上的重复副本并有效填充它们

大小为M的第N位_计数(或人口计数)的公式

NumPy中条件嵌套for循环的向量化

为一个组的每个子组绘制,

未知依赖项pin—1阻止conda安装""

启用/禁用shiny 的自动重新加载

将scipy. sparse矩阵直接保存为常规txt文件

AES—256—CBC加密在Python和PHP中返回不同的结果,HELPPP

matplotlib图中的复杂箭头形状

为什么我的sundaram筛这么低效

如何在GEKKO中使用复共轭物

如何编辑此代码,使其从多个EXCEL文件的特定工作表中提取数据以显示在单独的文件中

python3中np. divide(x,y)和x/y有什么区别?'

启动线程时,Python键盘模块冻结/不工作

极点:在固定点扩展窗口

某些值的数值幂和**之间的差异

Pandas ,快速从词典栏中提取信息到新栏

如何在Django查询集中生成带有值列表的带注释的字段?

极地数据帧:ROLING_SUM向前看

将标量值作为输入并输出矩阵的函数的积分