Pandas to_datetime未以所需格式格式化日期时间值

时间:2017-10-25 10:38:48

标签: python pandas

我有以下格式的日期时间值

    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

我必须以下面的格式显示值

    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")

1 个答案:

答案 0 :(得分:1)

给定一个字符串列,使用pd.to_datetime将其转换为日期时间对象列。给定已存在的 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__方法定义。