2017-06-29 97 views
1

私は日付の値を持つオブジェクト列を持っています。私はcsvから読み込んだ後、NaNの代わりに手動で2016-08-31を配置しました。pd.to_datetimeが変換できないのはなぜですか?

TypeError: invalid string coercion to datetime 

df['close_date'] = pd.to_datetime(df['close_date'])結果を実行

  close_date 
0 1948-06-01 00:00:00 
1 2016-08-31 00:00:00 
2 2016-08-31 00:00:00 
3 1947-07-01 00:00:00 
4 1967-05-31 00:00:00 

coerce=True引数の結果を追加:私は、データフレーム内のすべての列、 'close_date' 列を呼び出すにもかかわらず、さらに

TypeError: to_datetime() got an unexpected keyword argument 'coerce' 

、一部のint64、float64、およびdatetime64 [ns]は、dtypeオブジェクトに変更されます。

私は間違っていますか?

答えて

3

あなたはNaTに、いくつかのない解析可能な値を変換するものerrors='coerce'パラメータが必要になります。

df['close_date'] = pd.to_datetime(df['close_date'], errors='coerce') 
print (df) 
    close_date 
0 1948-06-01 
1 2016-08-31 
2 2016-08-31 
3 1947-07-01 
4 1967-05-31 

print (df['close_date'].dtypes) 
datetime64[ns] 

しかし、いくつかの混合値がある場合 - 日付時刻を持つ数値は、最初のstrに変換:

df['close_date'] = pd.to_datetime(df['close_date'].astype(str), errors='coerce') 
関連する問題