Python 3.x 如何将字符串序列转换为带时间和不带时间的日期时间

Python 3.x 如何将字符串序列转换为带时间和不带时间的日期时间,python-3.x,pandas,datetime,Python 3.x,Pandas,Datetime,当使用astype函数将序列从字符串转换为日期时间时,如果字符串没有时间组件,则在转换和交换同一序列中的月份和日期时,它会采取不同的行为。转换系列的正确方法是什么 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_datetim

当使用
astype
函数将
序列
字符串
转换为
日期时间
时,如果字符串没有时间组件,则在转换和交换同一
序列
中的月份和日期时,它会采取不同的行为。转换
系列的正确方法是什么

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
输出: 执行以下操作时:

df_date.Date = df_date.Date.astype('datetime64')
它变为日期时间类型:

print(df_date.Date.dtype)
但在转换时,它有两种不同的行为:

df_date
输出: 我心目中的预期结果是:

    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行上的日期和月份

    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