使用Series
函数将string
从datetime
转换为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行交换日期和月份。