将字符串转换为日期格式:DD-MMM-YYYY到Python中的日期时间

时间:2018-01-01 15:49:19

标签: python string pandas date dataframe

我有一个pandas数据框,其中的列包含如下字符串

01-May-2012  16:44:55.113
01-Jun-2012  18:49:57.466
01-May-2012  14:64:45.119
01-May-2012  14:23:55.113

我希望将其转换为以下格式。

2012-05-01 16:44:55.113
2012-06-01 18:49:57.466
2012-05-01 14:64:45.119
2012-05-01 14:23:55.113

我尝试使用pandas.to_datetime(df [' date time'])但我收到错误未知字符串值。我还尝试将字符串拆分为两列并仅转换日期部分但面临类似的错误

1 个答案:

答案 0 :(得分:4)

可能的愚蠢行为:Convert Pandas Column to DateTime。它已经过时了,接受的答案指定了大多数情况下不需要的格式。

但是,请看一下:

import pandas as pd

data = dict(dates=['01-May-2012  16:44:55.113',
                   '01-Jun-2012  18:49:57.466',
                   '01-May-2012  14:64:45.119',  # <--- Error, minute can't be more than 60
                   '01-May-2012  14:23:55.113'])

df = pd.DataFrame(data)
df.dates = pd.to_datetime(df.dates, errors='coerce')

print(df)

你得到这个(感谢@ 3novak建议错误=&#39;强迫&#39;):

                    dates
0 2012-05-01 16:44:55.113
1 2012-06-01 18:49:57.466
2                     NaT
3 2012-05-01 14:23:55.113