将dataframe列中的日期转换为MM / DD / YYYY

时间:2016-04-13 05:04:50

标签: python date pandas dataframe

我有4个名为df1df2df3df4的数据框,其中一列Date。该列由具有不同格式的日期组成。 df1具有int64类型的日期列,df2具有对象类型的日期列,df3具有日期列具有类型对象,df4具有对象类型的日期列。以下是数据框及其数据。

df1:
          Date
0     20160301
1     20160301
2     20160301
3     20160301

df2: 
      Date
0   01/03/2016
1   01/03/2016
2   01/03/2016

df3:
      Date
0   31-Mar-16
1   31-Mar-16
2   31-Mar-16

df4:
      Date
0  25/02/2016
1  25/02/2016
2  25/02/2016

我想将表格中的这些日期转换为mm/dd/yyyy类型的date。谁可以帮我这个事?

1 个答案:

答案 0 :(得分:2)

我认为您可以使用to_datetimedt.strftime,但type不是datetime,而是string

df1['Date'] = pd.to_datetime(df1['Date'], format='%Y%m%d').dt.strftime('%m/%d/%Y')
df2['Date'] = pd.to_datetime(df2['Date']).dt.strftime('%m/%d/%Y')
df3['Date'] = pd.to_datetime(df3['Date']).dt.strftime('%m/%d/%Y')
df4['Date'] = pd.to_datetime(df4['Date']).dt.strftime('%m/%d/%Y')

print df1
print df2
print df3
print df4
         Date
0  03/01/2016
1  03/01/2016
2  03/01/2016
3  03/01/2016
         Date
0  01/03/2016
1  01/03/2016
2  01/03/2016
         Date
0  03/31/2016
1  03/31/2016
2  03/31/2016
         Date
0  02/25/2016
1  02/25/2016
2  02/25/2016

print type(df1.at[0,'Date'])
<type 'str'>

如果您需要datetime,格式为YY-MM-DD

df1['Date'] = pd.to_datetime(df1['Date'], format='%Y%m%d')
df2['Date'] = pd.to_datetime(df2['Date'])
df3['Date'] = pd.to_datetime(df3['Date'])
df4['Date'] = pd.to_datetime(df4['Date'])

print df1
print df2
print df3
print df4
        Date
0 2016-03-01
1 2016-03-01
2 2016-03-01
3 2016-03-01
        Date
0 2016-01-03
1 2016-01-03
2 2016-01-03
        Date
0 2016-03-31
1 2016-03-31
2 2016-03-31
        Date
0 2016-02-25
1 2016-02-25
2 2016-02-25

print type(df1.at[0,'Date'])
<class 'pandas.tslib.Timestamp'>

有关格式化datetime的更多信息,请here