如何将字符串Serie转换为带时间和不带时间的日期时间

时间:2019-06-15 22:14:23

标签: python-3.x pandas datetime

使用Series函数将stringdatetime转换为astype时,如果字符串没有时间分量,则在转换和交换时它会采取不同的行为Series中的月份和日期。转换Series的正确方法是什么?

df_date=pd.DataFrame(['12/07/2013 21:50:00','13/07/2013 00:30:00','15/07/2013','11/07/2013'], columns=['Date'])

print(df_date.Date.dtype)

df_date.Date = pd.to_datetime(df_date.Date, format="%d/%m/%Y %H:%M:%S", exact=False, dayfirst=True, errors='ignore')

print(df_date.Date.dtype)

df_date

输出:

    Date

0   12/07/2013 21:50:00
1   13/07/2013 00:30:00
2   15/07/2013
3   11/07/2013

这样做时:

df_date.Date = df_date.Date.astype('datetime64')

它变为日期时间类型:

print(df_date.Date.dtype)

但是在转换时它有两种不同的行为:

df_date

输出:

    Date

0   2013-12-07 21:50:00
1   2013-07-13 00:30:00
2   2013-07-15 00:00:00
3   2013-11-07 00:00:00

在我看来,预期结果是:

    Date
0   2013-07-12 21:50:00
1   2013-07-13 00:30:00
2   2013-07-15 00:00:00
3   2013-07-11 00:00:00

代替在第0行和第3行交换日期和月份。

0 个答案:

没有答案