将列数据类型更改为timedateformat

时间:2019-06-26 05:10:05

标签: python pandas

在我的数据中,我有一个用于日期的列,此列包含日期,格式分别为19年2月1日和01-1-19

如果我正在使用此代码数据,则会出现错误

['Request date']=pd.to_date time(data['Request date'],format='%d-%b-%Y')

data ['Request date']=pd.to_date time(data['Request date'],format='%d-%b-%Y')

data['Requestdate']=pd.to_datetime(data['RequeDate'],format='%d/%b/%Y')

如何在一行命令中同时使用这两种格式。我该怎么办?

python熊猫

1 个答案:

答案 0 :(得分:1)

如果两种格式的首位都是天,则可以添加dayfirst=True参数:

data = pd.DataFrame({
    'Request date' : ['02/1/19', '01-1-19'],

})

data['Request date'] = pd.to_datetime(data['Request date'], dayfirst=True)
print (data)

  Request date
0   2019-01-02
1   2019-01-01

如果需要指定两种格式,请分别使用参数errors='coerce'创建每个日期,并用Series.combine_first一起创建日期:

date1 = pd.to_datetime(data['Request date'],format='%d-%m-%y', errors='coerce')
date2 = pd.to_datetime(data['Request date'],format='%d/%m/%y', errors='coerce')

data['Request date'] = date1.combine_first(date2)
print (data)
  Request date
0   2019-01-02
1   2019-01-01