-2
私は日付を含む列を持つパンダのデータフレームを持っています。パンダが日付以外の値を見つける
これらの列に日付が含まれていることを確認する必要があります。誰にどのようにこれを行うにはアドバイスを持っていますか? 私は単純に、日付以外のデータ型を含む行を見つけることを考えましたが、これをコード化する方法はわかりません。
助けていただけたら幸いです!
私は日付を含む列を持つパンダのデータフレームを持っています。パンダが日付以外の値を見つける
これらの列に日付が含まれていることを確認する必要があります。誰にどのようにこれを行うにはアドバイスを持っていますか? 私は単純に、日付以外のデータ型を含む行を見つけることを考えましたが、これをコード化する方法はわかりません。
助けていただけたら幸いです!
データがないNaN
秒またはNone
sの値が含まれており、すべての文字列valusがto_datetime
と、いくつかの値を解析できない場合はどのようなリターンNaT
パラメータerrors='coerce'
でdatetime
使用apply
に変換できるかどうかを確認する必要が場合。それではマスクにall
でnotnull
を追加し、loc
を選択:
df = pd.DataFrame({'a':['2015-02-04','2015-02-05','2015-02-06'],
'b':['2015-02-06','2015-02-06', 'u'],
'c':['2015-01-01','d','2015-02-06']})
print (df)
a b c
0 2015-02-04 2015-02-06 2015-01-01
1 2015-02-05 2015-02-06 d
2 2015-02-06 u 2015-02-06
cols = ['a','b','c']
mask = df[cols].apply(pd.to_datetime, errors='coerce').notnull().all()
print (mask)
a True
b False
c False
dtype: bool
print (df.loc[:, mask])
a
0 2015-02-04
1 2015-02-05
2 2015-02-06
場合や、いくつかの列がすでにdtype
datetime
使用DataFrame.select_dtypes
ているかどうか確認が必要です。
df['a'] = pd.to_datetime(df['a'])
print (df)
a b c
0 2015-02-04 2015-02-06 2015-01-01
1 2015-02-05 2015-02-06 d
2 2015-02-06 u 2015-02-06
print (df.dtypes)
a datetime64[ns]
b object
c object
dtype: object
print (df.select_dtypes(include=['datetime']))
a
0 2015-02-04
1 2015-02-05
2 2015-02-06
なぜあなただけの要素を変換しようとすることはできませんが失敗した場合はデータが破損しています。 –
あなたは 'df ['Date'] = pd.to_datetime(errors = 'coerce')'を実行することができるだけでなく、有効な日付と思われるものの例を見て、 .dropna() 'は無効な日付文字列として' NaT 'に変換されます。 – EdChum