Tengo un gran marco de datos con muchas columnas, muchas de las cuales son de tipo datetime.datetime
. El problema es que muchos también tienen tipos mixtos, que incluyen, por ejemplo, datetime.datetime
valores y None
valores (y potencialmente otros valores no válidos):
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
Por lo tanto, resulta en una object
columna de tipo. Esto se puede resolver con df.colx.fillna(pd.NaT)
. El problema es que el marco de datos es demasiado grande para buscar columnas individuales.
Otro enfoque es usar pd.to_datetime(col, errors='coerce')
, sin embargo, esto se convertirá en datetime
muchas columnas que contienen valores numéricos.
También podría hacerlo df.fillna(float('nan'), inplace=True)
, aunque las columnas que contienen fechas todavía son de object
tipo, y todavía tendrían el mismo problema.
¿Qué enfoque podría seguir al elenco de fecha y hora a las columnas cuyos valores realmente no contener datetime
valores, sino que también podría contener None
, y posiblemente algunos valores no válidos (mencionando ya que de otra una pd.to_datetime
en un try
/ except
cláusula harían)? Algo así como una versión flexible depd.to_datetime(col)
None
en sus columnas, None
representativos reales o de cadena?
None
, no una cadena. Potencialmente puede haber valores erróneos también ... @erfan
datetime
y values
en ella?
datetime.datetime
opandas._libs.tslibs.timestamps.Timestamp
? Si lo primero, mi recomendación sería cambiar lo que haya creado la fecha y hora al tipo que sepandas
maneje un poco mejor.