2016-04-13 11 views
1

df1,df2df3df4、1列がDateの4つのデータフレームがあります。列は異なる形式の日付で構成されます。 df1にはint64型の日付列があり、df2にはオブジェクト型の日付列があり、df3の日付列には型オブジェクトがあり、df4にはオブジェクト型の日付列があります。以下は、データフレームとそのデータです。データフレーム列の日付をMM/DD/YYYYに変換

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 

私はタイプdatemm/dd/yyyyとしての形でこれらの日付を変換したいです。誰かが私にこれを助けることができますか?

答えて

1

私はあなたがto_datetimedt.strftimeを使用することができると思うが、typedatetimeではありませんが、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です:datetimeをフォーマットする程度

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'> 

詳細情報hereです。

+0

私は 'df1'と' df2'が不明であると思います。最初は文字列の日数か月です。私の解決策は正しいですか? – jezrael