2016-10-04 6 views
1

日付&を処理するためのパンダの機能を簡単にテストしようとしています。 私は以下のような値を持つデータフレームを作成しました。 :パンダでmm-dd-YY&YY-mm-dd形式の日付で作業する

df = pd.DataFrame({'date1' : ['10-11-11','12-11-12','10-10-10','12-11-11', 
         '12-12-12','11-12-11','11-11-11']}) 

ここでは、値は日付であると仮定しています。そして私はpandasのto_datetime関数を使って適切な形式に変換しています。ここ

df['format_date1'] = pd.to_datetime(df['date1']) 
print(df) 

Out[3]: 
     date1 format_date1 
0 10-11-11 2011-10-11 
1 12-11-12 2012-12-11 
2 10-10-10 2010-10-10 
3 12-11-11 2011-12-11 
4 12-12-12 2012-12-12 
5 11-12-11 2011-11-12 
6 11-11-11 2011-11-11 

、パンダは、 "MM/DD/YY" としてデータフレームの日付を読み取り、ネイティブ形式(すなわち、YYYY/MM/DD)で変換されます。私はパンダが実際に "YY/MM/DD"であることを示す入力を受け取り、ネイティブフォーマットに変換することができるかどうかをチェックしたいと思います。行番号:5の値が変更されます。これを行うには、次のコードを実行しました。しかし、それは私にエラーを与えている。

df3['format_date2'] = pd.to_datetime(df3['date1'], format='%Y/%m/%d') 

ValueError: time data '10-10-10' does not match format '%Y/%m/%d' (match) 

私は解決策の種類を見てきましたhere。しかし、私は少し簡単で鮮明な答えを得ることを望んでいた。

+0

に変更する必要があります。最初に 'year'を使って日付を解析する場合は、次のようにします。' df ['format_date1'] = pd.to_datetime(df ['date1']、 yearfirst = True) ' –

答えて

1

%Yの形式指定子では、4桁の年(つまり2016)が使用されます。 %yは2桁の年(すなわち1616、すなわち2016年)をとります。 %Y%yに変更しても問題ありません。

また、フォーマット指定子のダッシュもありません。書式を%y-%m-%d

+0

' format'の概要を見るにはここをクリックしてください(可能なすべてのオプションあり)[ここ](http://strftime.org/) – Mathias711