Cómo seleccionar o filtrar filas de DataFrame basadas en la fecha en Pandas?
Primero, convertiremos el tipo de datos de valores basados en datos en Datetime64; Luego, utilizaremos otros métodos (como DataFame.loc []) para seleccionar o filtrar las fechas basadas entre dos fechas. Inicialmente, el tipo de datos de fechas se puede dar o representar de varias maneras, como cadenas, NP.DateTime64 y DateTime.fecha y hora. Usando el PD.al método Datetime () en Pandas, podemos manipular las fechas convirtiendo el tipo de datos de fecha en formato Datetime64.
Sintaxis:
Parámetros:
Arg: Se puede ser flotante, lista, cadena, entero o marco de datos para convertirse en DateTime.
Errores: El valor se puede especificar como Raise, Coerce o Ignore. Cuando un diccionario como un mapeador, columnas o filas contiene etiquetas que están ausentes del índice que se convierte, eleva un KeyerRor si se está utilizando "elevar". Establecer para ignorar por defecto.
DayFirst: Establecer como falso por defecto. Si es cierto, el valor booleano coloca a DayFirst.
Yearfirst: Si es cierto, el valor booleano coloca el año. Falso es el valor predeterminado;
UTC: Valor limitado. Muestre el estándar de tiempo primario actual (UTC) si es verdadero.
formato: La posición del año, mes y el día se determina a través de una entrada de cadena. No es ninguno por defecto
infer_datetime_formatbool: Si se especifica verdadero y no se especifica ningún formato, intente inferir el formato de cadena de fecha/hora desde el primer elemento que no es nulo. Falso es el valor predeterminado.
En los ejemplos del tutorial, emplearemos la siguiente estrategia para elegir información de las filas basadas en fechas en el marco de datos entre dos fechas:
Ejemplo # 1: Valores basados en fechas de filtro utilizando DataFrame.Función LOC []
Filtraremos los datos basados en las fechas utilizando el "DataFrame.Función Loc [] ". Para acceder a un grupo de columnas y filas de un marco de datos a través del nombre de columnas, índices o una matriz booleana, se utiliza la función "Loc []". La expresión condicional en la variable loc [] en este ejemplo devuelve una matriz booleana con un valor real si la fila satisface la condición y un falso si la condición no cumple. Solo esas filas con valores verdaderos se devuelven utilizando el método LOC []. Creemos primero un marco de datos para comprender este ejemplo claramente.
Hemos creado un marco de datos al pasar un diccionario dentro del PD.Función DataFrame () después de importar los módulos PANDAS. En nuestro DataFrame, hay dos columnas cuyos nombres se especifican como "tareas" y "fecha". La columna "Tarea" consta de datos enteros (3, 2, 6, 1, 4, 5, 2, 1, 3, 4), y la columna "Fecha" consiste en valores de cadena basados en fechas ("2022-01- 05 "," 2022-01-15 "," 2022-02-01 "," 2022-02-10 "," 2022-03-20 "," 2022-03-30 "," 2022-04-12 " , "2022-04-24", "2022-05-15", "2022-05-25"). Para ver nuestro DataFrame, usaremos la función print ().
Ahora verifiquemos el tipo de datos de nuestras columnas utilizando el atributo "dtypes".
Como se puede observar, el tipo de datos de la columna "Tareas" es INT64, pero la columna "Fecha" tiene el tipo de datos del "Objeto". Como se mencionó anteriormente, tenemos que convertir el tipo de datos de las columnas con fechas a Datetime64. Para cambiar el tipo de datos de la columna "Fechas", se utilizará el método To_DateTime ().
Hemos pasado la columna "Fecha" en la función To_DateTime () como un argumento y especificamos el formato como días de años de años. Después de cambiar el tipo de datos de la columna "Fecha", lo asignamos a la columna "Fecha" de nuestro marco de datos "DF". Al usar el atributo dtypes, podemos verificar si el tipo de datos se cambia a "datetime64" o no.
Como el tipo de datos se ha cambiado ahora, podemos usar el método LOC [] para filtrar las filas requeridas.
Dentro del DF.Método Loc [], hemos creado una expresión/condición para seleccionar solo aquellas filas donde la fecha es mayor o igual a "22-02-01" y menos de "2022-04-24". Entonces, las filas del índice 2 al 6 están satisfechas por la condición como se muestra en la salida.
Ejemplo # 2: Valores basados en fechas de filtro utilizando diferentes atributos con DataFrame.Función LOC []
En el Ejemplo # 1, filtramos las filas basadas en fechas utilizando la función LOC []. En este ejemplo, utilizaremos diferentes atributos con la función LOC [] para seleccionar filas específicas basadas en fechas.
El primer paso será el mismo; Convertiremos el tipo de datos de la columna "Fecha" a "DateTime64" utilizando la función To_DateTime ().
Después de cambiar el tipo de datos a "DateTime64", utilizaremos la función LOC [] para seleccionar filas entre dos fechas.
Creamos una condición para seleccionar los datos dentro de las fechas que son iguales o mayores que "2022-04-10" y menos de "2022-06-15". Tenemos cuatro filas que tienen fechas ("2022-04-12", "2022-04-24", "2022-05-15" y "2022-05-25") que satisfacen la condición. Podemos filtrar aún más la salida a una hora, fecha, semana, mes, año, etc. específicas., mediante el uso de DateTime ".atributo DT "con DataFrame.Método LOC []. Supongamos que tenemos que seleccionar la fila que tiene la fecha "15" de la salida recientemente generada del marco de datos "DF" con cuatro filas.
Especificamos el DT.día == 15 para obtener los datos almacenados en la fila que tiene la fecha "15". Obtuvimos la fila del "Índice 8" como salida porque la fecha es 15 en esa fila. Ahora usemos el ".entre "atributo para seleccionar filas específicas entre dos fechas en nuestro DataFrame (creado en el Ejemplo # 1).
Usando el ".entre () "función, especificamos las fechas entre" 2022-01-15 "y" 2022-03-30 "para generar la salida.
Ejemplo # 3: Valores basados en fechas de filtro utilizando el .función de consulta ()
Ahora veremos cómo DataFrame.La función de Query () funciona para seleccionar filas específicas basadas en fechas de DataFrame. En este ejemplo, se utilizará el mismo DataFrame de datos "DF", que creamos en el Ejemplo # 1. Primero, convertiremos el tipo de datos de la columna "Fecha" a "DateTime64" como lo hemos hecho en ejemplos anteriores.
Ahora usaremos la función de consulta () para seleccionar filas entre fechas.
La condición dentro de la consulta (), como se muestra anteriormente, es seleccionar datos dentro de las fechas que son iguales o mayores que "2021-12-30" y menos de "2022-01-15". De manera predeterminada, las columnas de DataFrame se colocan en el espacio de nombres de la consulta, lo que permite el acceso a la columna de fecha sin especificar el nombre de la columna.
Estas son las filas que tienen datos dentro de las fechas que satisfacen la condición.
Conclusión
En este tutorial, hemos discutido cómo seleccionar las filas basadas en fechas entre fechas en pandas. Hemos visto la sintaxis de los pandas.función to_dateTime (), que utilizamos para convertir el tipo de datos de la columna basada en fechas a Datetime64. Implementamos ejemplos para enseñarle cómo usar DataFrame.Función Loc [], cómo usar diferentes atributos con DataFrame.Loc [] función y cómo usar el .Función de Query () para seleccionar los datos de las filas basadas en fechas entre dos fechas.