gpt4 book ai didi

python - 如何将 Pandas 日期时间列的时间更改为午夜?

转载 作者:行者123 更新时间:2023-12-03 18:57:58 25 4
gpt4 key购买 nike

使用 Pandas 1.0.0,如何在一行代码中将日期时间数据帧列的时间更改为午夜?

例如。:

START_DATETIME
2017-02-13 09:13:33
2017-03-11 23:11:35
2017-03-12 00:44:32
...


START_DATETIME
2017-02-13 00:00:00
2017-03-11 00:00:00
2017-03-12 00:00:00
...

我的尝试:
df['START_DATETIME'] = df['START_DATETIME'].apply(lambda x: pd.Timestamp(x).replace(hour=0, minute=0, second=0))

但这会产生
START_DATETIME
2017-02-13
2017-03-11
2017-03-12
...

最佳答案

您的方法已将日期时间值正确转换为午夜。即,他们的时间是 00:00:00 . Pandas 只是智能地不显示时间部分,因为显示 00:00:00 的所有相同时间是多余的。 .将结果分配回 START_DATETIME 后, 打印一个单元格会显示

print(df.loc[0, START_DATETIME])

Output:
2017-02-13 00:00:00

此外,将时间转换为 00:00:00 ,你应该使用 dt.normalizedt.floor
df['START_DATETIME'] = pd.to_datetime(df['START_DATETIME']).dt.normalize()

或者
df['START_DATETIME'] = pd.to_datetime(df['START_DATETIME']).dt.floor('D')

如果你想强制 pandas 显示 00:00:00在系列输出中,您需要转换 START_DATETIMEstr转换后
pd.to_datetime(df['START_DATETIME']).dt.floor('D').dt.strftime('%Y-%m-%d %H:%M:%S')

Out[513]:
0 2017-02-13 00:00:00
1 2017-03-11 00:00:00
2 2017-03-12 00:00:00
Name: START_DATETIME, dtype: object

关于python - 如何将 Pandas 日期时间列的时间更改为午夜?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60012168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com