Saya memiliki kerangka data yang besar dengan banyak kolom, banyak di antaranya bertipe datetime.datetime. Masalahnya adalah bahwa banyak juga yang memiliki tipe campuran, termasuk misalnya datetime.datetimenilai dan Nonenilai (dan berpotensi nilai tidak valid lainnya):
0 2017-07-06 00:00:00
1 2018-02-27 21:30:05
2 2017-04-12 00:00:00
3 2017-05-21 22:05:00
4 2018-01-22 00:00:00
...
352867 2019-10-04 00:00:00
352868 None
352869 some_string
Name: colx, Length: 352872, dtype: object
Karenanya menghasilkan objectkolom tipe. Ini bisa diselesaikan dengan df.colx.fillna(pd.NaT). Masalahnya adalah bahwa kerangka data terlalu besar untuk mencari kolom individual.
Pendekatan lain adalah menggunakan pd.to_datetime(col, errors='coerce'), namun ini akan dilemparkan ke datetimebanyak kolom yang berisi nilai numerik.
Saya juga bisa melakukannya df.fillna(float('nan'), inplace=True), meskipun kolom yang berisi tanggal masih objectbertipe, dan masih akan memiliki masalah yang sama.
Pendekatan apa yang bisa saya ikuti untuk melemparkan ke datetime kolom-kolom yang nilainya benar-benar berisi datetimenilai-nilai, tetapi juga bisa mengandung None, dan berpotensi beberapa nilai yang tidak valid (menyebutkan karena kalau tidak pd.to_datetimedalam a try/ exceptklausa akan lakukan)? Sesuatu seperti versi fleksibelpd.to_datetime(col)
Nonedi kolom Anda, aktual Noneatau string perwakilannya?
Nonebukan string. Nilai yang berpotensi salah juga ... @erfan
datetimedan valuesdi dalamnya?
datetime.datetimeataupandas._libs.tslibs.timestamps.Timestamp? Jika mantan rekomendasi saya akan mengubah apa pun yang menciptakan datetime ke jenis yangpandasmenangani sedikit lebih baik.