python - 如何将 Pandas 日期时间列的时间更改为午夜?
问题描述
使用 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.normalize
或dt.floor
df['START_DATETIME'] = pd.to_datetime(df['START_DATETIME']).dt.normalize()
或者
df['START_DATETIME'] = pd.to_datetime(df['START_DATETIME']).dt.floor('D')
如果要强制 pandas00:00:00
在系列输出中显示,则需要在转换START_DATETIME
后str
转换为
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
推荐阅读
- jquery - 自动建议和 ajax 调用
- swift - 如何在 Swift 通用 where 子句中添加 OR 条件?
- c++ - 使用泛型编程的基本数据结构
- c++ - 在 C++ 中合并两个内存块?
- node.js - 在 gremlin javascript 中使用谓词
- html - 在 HTML 中的链接前插入徽标
- sql - SQL Server - 检查列是否存在>>重命名和更改类型
- android - Android:通过每个按钮单击创建新的 ImageView
- react-native - React-Native-Camera Amazon Kindle 7 (5.1.1) 后置摄像头捕捉到纯绿色
- c# - 具有不同函数调用的嵌套 for 循环