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