我有以下格式的日期时间值
2017-09-11 01:18:38
2017-09-11 01:34:30
2017-09-11 05:03:57
2017-09-11 09:55:48
2017-09-11 09:59:10
2017-09-11 12:09:05
我必须以 dd/mm/YYYY HH:MM:SS AM/PM 格式显示值:
11/09/2017 01:18:38 AM
11/09/2017 01:34:30 AM
11/09/2017 05:03:57 AM
11/09/2017 09:55:48 AM
11/09/2017 09:59:10 AM
11/09/2017 12:09:05 PM
11/09/2017 12:08:16 PM
我正在使用下面的代码来做到这一点,但是它不会改变格式
data_f1['Reported Date'] = pd.to_datetime(data_f1['Reported Date'],
format="%m/%d/%Y %I:%M:%S %p")
最佳答案
给定一个字符串列,使用pd.to_datetime
将其转换为日期时间对象列。
给定一个已经存在的日期时间列,使用dt.strftime
将其转换为特定格式的字符串列。
这就是它的工作原理,您无法更改它。
df
date
0 2017-09-11 01:18:38
1 2017-09-11 01:34:30
2 2017-09-11 05:03:57
3 2017-09-11 09:55:48
4 2017-09-11 09:59:10
5 2017-09-11 12:09:05
df.date.dt.strftime("%m/%d/%Y %I:%M:%S %p")
0 09/11/2017 01:18:38 AM
1 09/11/2017 01:34:30 AM
2 09/11/2017 05:03:57 AM
3 09/11/2017 09:55:48 AM
4 09/11/2017 09:59:10 AM
5 09/11/2017 12:09:05 PM
Name: date, dtype: object
请注意,更改 datetime
列的表示没有用,因为它们是 datetime
对象,并拥有由其类的 __repr__
方法定义的自己的表示。
关于python - Pandas to_datetime 未将日期时间值格式化为所需格式 (dd/mm/YYYY HH :MM:SS AM/PM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46930201/