У мене величезна рамка даних з багатьма колонками, багато з яких мають тип datetime.datetime
. Проблема полягає в тому, що багато людей також мають змішані типи, включаючи, наприклад, datetime.datetime
значення та None
значення (та потенційно інші недійсні значення):
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
Звідси виходить object
стовпець типу. Це можна вирішити за допомогою df.colx.fillna(pd.NaT)
. Проблема полягає в тому, що фрейм даних занадто великий для пошуку окремих стовпців.
Інший підхід полягає у використанні pd.to_datetime(col, errors='coerce')
, однак це стосується datetime
багатьох стовпців, що містять числові значення.
Я також міг би зробити це df.fillna(float('nan'), inplace=True)
, хоча стовпці, що містять дати, все ще мають object
тип, і все одно матимуть ту саму проблему.
Який підхід я міг би дотримуватися, щоб передати ці дати стовпцям, чиї значення дійсно містять datetime
значення, але можуть також містити None
й потенційно деякі недійсні значення (згадуючи про те, оскільки в іншому випадку це було б pd.to_datetime
у try
/ / except
пункті)? Щось на кшталт гнучкої версіїpd.to_datetime(col)
None
у ваших стовпцях фактичними None
чи рядковими його представниками?
None
, а не струнні. Потенційно можуть бути і неправильні значення також ... @erfan
datetime
і values
в ньому?
datetime.datetime
абоpandas._libs.tslibs.timestamps.Timestamp
? Якщо попередня моя рекомендація - змінити будь-який створений час дати на тип, якийpandas
обробляє трохи краще.