Filtro de pandas por fecha

Filtro de pandas por fecha
El formato de las fechas varía en diferentes regiones (DD/MM/YY, YYYY-MM-DD, YYYY-DD-MM, etc.). Trabajar con valores de cadena de fecha en el conjunto de datos es un desafío. La hora y la fecha en el formato de cadena se pueden convertir a Datetime64 utilizando el método de pandas 'to_dateTime (). Este tipo de datos nos permite la extracción de las características de tiempo y fecha que van desde "microsegundos" hasta "año". Primero, convierta los valores de fecha en el marcado de datos dado al tipo Datetime64 antes de filtrar las filas en función de las fechas. Luego, defina una condición de filtro utilizando DataFrame del paquete Pandas.LOC y DataFrame.funciones de consulta. Obtenga el marcado de datos filtrado, que es el subconjunto de datos.

Cómo extraer valores del marco de datos de Pandas basado en valores de fecha

En los siguientes ejemplos, utilizaremos los diferentes métodos para filtrar las columnas de los valores de DataFrame por fecha. Antes de filtrar los datos, las fechas deben convertirse en el tipo de datos "'' '' DateTime64".

Ejemplo 1: Extraiga datos utilizando DataFrame.Loc [] función basada en valores de fecha

Usando los nombres de la columna o una matriz booleana, la función LOC [] se puede usar para recuperar un grupo de columnas y filas en un marcado de datos. Una matriz (booleana) con un valor verdadero si la fila cumple con el requisito y un valor falso en todos los demás casos se devuelve mediante la expresión condicional en el método LOC []. La función loc [] solo devuelve las filas con valores verdaderos. Para crear nuestro marco de datos, usamos el PD.Función DataFrame (). La biblioteca de pandas debe importarse primero.


Pasamos un diccionario de Python dentro del PD.DataFrame () Función para crear nuestro DataFrame "DF". Imprimtamos para visualizar su contenido.


Hay dos columnas en el "nombre" de datos de datos anterior y "Posting_date". La columna "Nombre" consta de nombres de empleados de alguna compañía ("Leo", "Bruce", "Robert", "Clay", "Martin", "Henry", "Lana", "Becky", "Alexa" , "Dustin"). La columna "Posting_Date" contiene el registro de la fecha de publicación de cada empleado ("2022-08-01", "2022-08-20", "2022-09-05", "2022-09-25", "2022 -09-30 "," 2022-10-10 "," 2022-11-10 "," 2022-12-01 "," 2022-12-10 "," 2022-12-30 "). Verifiquemos los tipos de datos de las columnas en el marco de datos "DF" utilizando el atributo dtypes.


Se puede obedecer que el tipo de datos actual de las columnas "posting_date" es "objeto". Para filtrar los datos en función de los valores de fecha, los convertimos en "DateTime64".


Para convertir el tipo de datos a Datetime64, utilizamos el PD.función datetime () y pasó la columna "posting_date" como argumento dentro de la función. Se especifica el formato. Ahora, el tipo de datos de la columna con valores de fecha se cambia a "Timedate64". Nuevamente, puede usar el atributo dtypes para determinar el tipo de datos de las columnas.


El tipo de datos de posting_date se cambia de objeto a Datetime64. Como el tipo de datos se cambia ahora, podemos usar nuestra función LOC [] con condiciones dentro de él para filtrar las filas.


Aplicamos dos condiciones dentro de la función LOC [] para extraer las filas de DataFrame donde la fecha en "Posting_Date" es igual o mayor que "22-09-05" y el valor de "Posting_Date" es inferior a 22- 12-01.


Las filas anteriores del marco de datos cumplen con las condiciones dentro de la función LOC [].

Ejemplo 2: Extraiga los datos utilizando DateTimeIndex (DT) en DataFrame.Función LOC []

Se pueden devolver varias propiedades utilizando DT para obtener los valores de la serie como valores de DataTimelike. Por ejemplo, la "serie.dt.El atributo de fecha "devuelve una matriz de Python DateTime Numpy. Creemos otro marco de datos para este ejemplo.


El marco de datos se crea utilizando el lado del diccionario del PD.Función DataFrame ().


La columna "Fecha" en nuestro marco de datos consiste en valores de fecha como cadenas ("2021-06-09", "2021-06-25", "2021-07-05", "2021-07-12", "2021 -08-29 "," 2021-09-15 "," 2021-10-21 "," 2021-11-02 "," 2021-11-10 "," 2021-11-18 "). Ahora verificamos el tipo de datos del DataFrame con la ayuda del atributo DTYPES.


El tipo de datos de columnas "tarea" y "fecha" son int64 y objeto, respectivamente. Cambiamos la columna "Fecha" a un tipo de datos "DateTime64". Para cambiar su tipo de datos, usamos la función to_dateTime ().


Ahora, podemos filtrar los datos utilizando el método LOC []. Primero, filtramos los datos sin usar el atributo DT para filtrar los datos para fechas específicas.


El script anterior recupera las filas con las fechas entre noviembre ya que la condición se especifica como la fecha debe ser igual o mayor que 2021-11-01 y menos de 2021-11-30.


También podemos recuperar las filas con fechas o horarios específicos utilizando el atributo DT. Supongamos que recuperamos la fila para un día de semana específico. La indexación de los días de semana comienza del 1 al 7, donde 1 es el lunes y 7 es el domingo. Si especificamos el lunes, usamos el valor del índice 1.

Ejemplo 3: extraiga los datos utilizando .Función de consulta [] basada en valores de fecha

El método Query () también se puede utilizar para filtrar los datos basados ​​en los valores de fecha de DataFrame. Puede consultar el DataFrame usando el método Query (). Una expresión de consulta se pasa como una entrada de cadena al método de consulta (), y debe devolver verdadero o falso. El cuadro de datos se devuelve cuando la salida es verdadera mediante la declaración de consulta. Creemos un DataFrame donde usamos la función Query () para filtrar los datos.


Ahora, cambiemos el tipo de datos de la columna "Llegada" a Datetime64 usando la función To_DateTime ().


Usando el atributo dtypes, verifiquemos si el tipo de datos de la columna de "llegada" se cambia a Datetime64 o no.


A medida que se cambia el tipo de datos, usamos la función Query () para filtrar los datos del marco de datos "DF".


Puede observar que la condición dentro de la función de consulta () se pasa como una cadena, i.mi. "Llegada> = '2022-02-05' y llegada < '2022-05-15'”. The function returns the rows where the date values in the “arrival” column are equal to or greater than 2022-02-05 and less than 2022-05-15.


Las filas anteriores del marco de datos "DF" satisfacen la condición dentro de la función de consulta ().

Ejemplo 4: filtrar las filas entre dos fechas usando la función ISIN ()

El método ISIN () ayuda a recuperar las filas con un solo valor (o múltiple) en una columna específica. Los "pandas.Marco de datos.El método ISIN () "devuelve un marco de datos de booleanos que indica si un elemento está incluido o no en el rango dado. Esta técnica nos permite filtrar las hileras del marco de datos en los pandas de acuerdo con la fecha. Ahora creamos una nueva muestra de datos de datos para demostrar el uso de la función ISIN () para filtrar las filas después de importar los módulos pandas y numpy.


A medida que creamos nuestro marcado de datos, ahora cambiamos el tipo de datos de la columna "fecha" a Datetime64 como lo hicimos en los ejemplos anteriores.


Después de cambiar el tipo de datos a DateTime 64, filtramos las filas utilizando las filas de la marca de datos "DF" utilizando la función ISIN ().


Pasamos el PD.función date_range () junto con la función isin (). Especificamos el parámetro de inicio de date_range () como 2021-12-01 y el parámetro final como 2022-02-01. El código anterior devuelve las filas del DataFrame que se encuentran dentro del rango.

Conclusión

En este tutorial, tratamos de enseñarle cómo filtrar las filas por valores de fecha. Aprendimos que convertimos los valores de fecha en el marcado de datos dado al tipo Datetime64 antes de filtrar las filas en función de las fechas. Implementamos algunos ejemplos en este artículo para enseñarle cómo puede usar DataFrame.Función LOC [], .Función de consulta [] e ISIN () Función para filtrar los datos por fechas en pandas. Ahora, después de pasar por este tutorial, debería poder filtrar las filas usted mismo.