2017-11-04 13 views
1

dataFrameの列をTD形式に変換しようとしています。これは私が今やっていることであるPythonのDateTime形式

01/11/2012 00:00  
01/11/2012 01:00  
01/11/2012 02:00 

: 列は、(彼らは現在の文字列で)次のようになり、それはというエラーをスローし、

df['Sdate'] = pd.to_datetime(df['Sdate'], format='%d%m%y %H:%M.%f') 

をしかし

time data '01/11/2012 00:00' does not match format '%d%m%y %H:%M.%f' (match) 

そうではありません。 HHはありません:MM 00:00 - 23:00?

または、私は本当にここで何か迷っていますか? dayfirstパラメータと

+2

あなたは '/'、あなたがマイクロ秒のディレクティブを必要としない、と '%y'不足しています'%Y'でなければなりません。代わりに ''%d /%m /%Y%H:%M ''を使用してください。 –

答えて

2

使用to_datetime

df['Sdate'] = pd.to_datetime(df['Sdate'], dayfirst=True) 
print (df) 
       Sdate 
0 2012-11-01 00:00:00 
1 2012-11-01 01:00:00 
2 2012-11-01 02:00:00 

形式を指定したい場合:

df['Sdate'] = pd.to_datetime(df['Sdate'], format='%d/%m/%Y %H:%M') 
print (df) 
       Sdate 
0 2012-11-01 00:00:00 
1 2012-11-01 01:00:00 
2 2012-11-01 02:00:00 
+0

まさに私が探していたものです。ありがとう。 'dayfirst = True'の効果を説明できますか? –

+0

これを省略すると、すべての日付が '2012-11-21 00:00:00'のようにclaerでない場合、' 2012-01-11 00:00:00'が解析されます。だから、それは間違いなく省略することができますが、ほんのわずかの日付で、 'DDMMYY'と' MMDDYY'を明確にしていないのであれば役に立ちます。 – jezrael