2017-12-18 17 views
1

私はデータ型に変換したいオブジェクトタイプとして特定の機能を持っています。 pd.to_datetimeを使用して変換しようとすると、これらの機能の一部が「範囲外のタイムスタンプ」エラーメッセージを返します。これに対処するために、私は "errors = coerce"引数を追加し、結果として得られるすべてのNAを削除しようとします。たとえば:パンダ、 "範囲外のタイムスタンプ..."

pd.to_datetime(df[date_features], infer_datetime_format = True, errors = 'coerce') 
df[date_features].dropna(inplace= True) 

しかし、これはに機能を変換していないようだ「日時:」(「maturity_dateは、」私はdatetime型に変換しようとしていますdate_featuresの一つです)。私はもう一度「強制」することなく、pd.to_datetimeを使用してmaturity_dateを変換しようとした場合

df.[maturity_date].describe() 

count  3355323 
unique   11954 
top  2015-12-01 
freq   29607 
Name: maturity_date, dtype: object 

さらに、私は「アウトバウンドの」タイムスタンプを取得します。

この問題を完全に記述していただきたいと思います。

どのような考えですか?

+0

'pd.to_datetime'は実行中ではありません。結果を戻します。 –

+0

'df ['date_features'] = pd.to_datetime(...)' –

+0

また、カラムに 'dropna'を呼び出すことは何もしません。 'df = df.dropna(subset = ['date_features'])' –

答えて

1

pd.to_datetimeは、インプレース操作ではありません。コードで変換が実行され、結果が破棄されます。行うには正しい事はそうのように、バックの結果を割り当てることであろう - さらに

df['date_features'] = pd.to_datetime(df.date_features, errors='coerce') 

、データフレームに属している列にdropnaを呼び出すことはありません、これはデータフレームを変更することはありませんよう(偶数とinplace=True )。その代わり、subset属性でデータフレームdropnaを呼び出す - 観察されるように今

df.dropna(subset='date_features', inplace=True) 

maturity_dateは次のようになります -

results["maturity_date"].head() 

0 2017-04-01 
1 2017-04-01 
2 2017-04-01 
3 2016-01-15 
4 2016-01-15 
Name: maturity_date, dtype: datetime64[ns] 

あなたが見ることができるように、dtypedatetime64、意味ですこの操作はうまくいった。 describe()に電話すると、いくつかの標準集計が実行され、結果は新しいシリーズとして返されます。このシリーズは、に適用されるdtypeの説明を含む他のものと同じ方法で表示され、記述されている列ではありません。

+0

@COLDSPEED - うわー、あなたの返信からたくさん学習しました。どうもありがとうございました。 – GPB

+0

@GPB幸せなコーディングを歓迎します。 –

関連する問題