Pandas中的日期时间格式不一致

时间:2016-11-16 22:33:10

标签: python datetime pandas datetime-format

我在数据框中以2015年8月的一些数据采用以下格式:

Timestamp                  Value

2015-12-08 23:58:00          3.4 
2015-12-08 23:59:00          3.2
2015-08-13 00:00:00          1.1
2015-08-13 00:01:00          0.9

有两种格式yy-dd-mm和yy-mm-dd(从8月13日开始)。我正在努力将这些转换为通用格式。任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分:1)

首先,将字符串转换为datatime,从预期的正确格式开始,并要求忽略错误:

df['Correct'] = pd.to_datetime(df.Timestamp,
                               format='%Y-%d-%m %H:%M:%S',
                               errors='coerce')


df.Correct
Out[34]: 
0   2015-08-12 23:58:00
1   2015-08-12 23:59:00
2                   NaT
3                   NaT
Name: Correct, dtype: datetime64[ns]

现在您知道应用第二种格式的位置:

df.Correct.update(pd.to_datetime(df[df.Correct.isnull()].Timestamp,
                                 format='%Y-%m-%d %H:%M:%S',
                                 errors='coerce'))
df
Out[36]: 
             Timestamp  Val             Correct
0  2015-12-08 23:58:00  3.4 2015-08-12 23:58:00
1  2015-12-08 23:59:00  3.2 2015-08-12 23:59:00
2  2015-08-13 00:00:00  1.1 2015-08-13 00:00:00
3  2015-08-13 00:01:00  0.9 2015-08-13 00:01:00