Recientemente comencé a jugar con Python y he estado atrapado con un problema relacionado con Pandas (particularmente .loc) por un tiempo. Básicamente, solo estoy tratando de manipular el marco de datos para que solo mantenga ciertos rangos de fechas.

Cuando filtro para una fecha específica, el comando se ejecuta sin problemas, pero tan pronto como cambie por un rango, no lo hará. Además, cualquier otro tipo de variable funciona bien. Me sorprende porque la gente debe tener que filtrar las fechas todo el tiempo. ¿Tengo que transformar la fecha?

# this works perfectly fine
raw_data.loc[raw_data['date_field'] == '2019-06-20', 'id':'date_field']

# this does not
raw_data.loc[raw_data['date_field'] >= '2019-06-20', 'id':'date_field']

Me sale un error de tipo:

TypeError Traceback (última llamada más reciente)

Ahora, he intentado todo tipo de transformaciones diferentes del campo de fecha pero sigo obteniendo el mismo error. ¿Es posible filtrar fechas usando .loc?

2
LeroyFromBerlin 24 oct. 2019 a las 12:59

1 respuesta

La mejor respuesta

Creo que aquí es necesario convertir la columna a fecha y hora por to_datetime:

raw_data['date_field'] = pd.to_datetime(raw_data['date_field'])
raw_data.loc[raw_data['date_field'] >= '2019-06-20', 'id':'date_field']
1
jezrael 24 oct. 2019 a las 10:05