替换PandasTimeStamp的“小时”和“分钟”时出错

bq9c1y66  于 2022-12-21  发布在  其他
关注(0)|答案(1)|浏览(82)

我正在使用pd.to_datetime()创建一个带有Pandas的datetime变量引用的dataframe只有日期(例如31/12/2023),因此函数返回的时间为00:00:00(例如31/12/2023 00:00:00),现在我想使用replace()函数按照这两篇SO帖子(ex1ex2)中所示的示例单独设置时间值,但这会导致错误:* 类型错误:replace()获得意外的关键字参数"hour"*
下面是代码:

end = pd.to_datetime(df_end_date, dayfirst=True).replace(hour=23, minute=59)

表达式 * df_end_date * 只有一个值,请参见下面的屏幕截图(1)或here
完整的错误消息显示在下面的屏幕截图(2)或here中。
截图(一):

截图(二):

cigdeys3

cigdeys31#

如果df_end_date是标量,则解工作:

df_end_date = '31/12/2023'

end = pd.to_datetime(df_end_date, dayfirst=True).replace(hour=23, minute=59)
print (end)
2023-12-31 23:59:00

如果Series,这里一个元素Series需要:

df_end_date = pd.Series(['31/12/2023'])
print (df_end_date)
0    31/12/2023
dtype: object

end = pd.to_datetime(df_end_date, dayfirst=True) + pd.offsets.DateOffset(hour=23, minute=59)
print (end)
0   2023-12-31 23:59:00
dtype: datetime64[ns]

或者:

end = pd.to_datetime(df_end_date, dayfirst=True).map(lambda x: x.replace(hour=23,minute=59))
print (end)
0   2023-12-31 23:59:00
dtype: datetime64[ns

相关问题