【发布时间】:2019-06-28 09:40:09
【问题描述】:
我的数据有两种不同日期格式的日期变量
Date
01 Jan 2019
02 Feb 2019
01-12-2019
23-01-2019
11-04-2019
22-05-2019
我想把这个字符串转换成日期(YYYY-mm-dd)
Date
2019-01-01
2019-02-01
2019-12-01
2019-01-23
2019-04-11
2019-05-22
我已经尝试过以下事情,但我正在寻找更好的方法
df['Date'] = np.where(df['Date'].str.contains('-'), pd.to_datetime(df['Date'], format='%d-%m-%Y'), pd.to_datetime(df['Date'], format='%d %b %Y'))
适合我的解决方案
df['Date_1']= np.where(df['Date'].str.contains('-'),df['Date'],np.nan)
df['Date_2']= np.where(df['Date'].str.contains('-'),np.nan,df['Date'])
df['Date_new'] = np.where(df['Date'].str.contains('-'),pd.to_datetime(df['Date_1'], format = '%d-%m-%Y'),pd.to_datetime(df['Date_2'], format = '%d %b %Y'))
【问题讨论】:
-
pd.to_datetime(df2['Date']) 工作...
-
它为 '11-04-2019' 提供了不正确的输出
-
@Sangram 这是因为它假定日期尽可能在美国 foemat 中。查找文档,我相信 to_datetime 有一个参数可以先强制日期
标签: python pandas numpy datetime string-to-datetime