Procesamiento de datos de Python (XXXIX) - groupby (filtrado)
Los métodos de filtro devuelven un subconjunto del objeto original.
Por ejemplo, queremos extraer los elementos de todos los subgrupos cuya suma sea mayor que 3
El parámetro del filtro debe ser una función que tome cada subgrupo como parámetro y devuelva True o Falso
Por ejemplo, para extraer subgrupos con elementos mayores que 2
Alternativamente, puede filtrar los grupos que no cumplen la condición y devolver un objeto similar a un índice. En este objeto, los elementos del grupo que no cumplan la condición se rellenarán con NaN
Para DataFrames con varias columnas, el filtro debe especificar explícitamente una columna como condición de filtro
Al hacerlo agregación o Al realizar la conversión, es posible que desee llamar a un método de instancia en cada agrupación, como
, pero esto puede volverse muy redundante cuando es necesario pasar parámetros adicionales. Simplemente usamos el método asignado al objeto de agrupación
Efectivamente, esto generará un contenedor de función que, cuando se llame, aceptará todos los argumentos pasados y en cada llamada de agrupación.
Este resultado se puede usar junto con agg y transform.
En el ejemplo anterior, agrupamos los datos por año y luego usamos fillna para completar los valores faltantes en cada agrupación.
p>
nlargest y nsmallest se pueden usar para grupos de tipo Serie
Para datos agrupados, podemos usar nlargest y nsmallest. p>
Algunas operaciones sobre datos agrupados pueden no ser adecuadas para la agregación o transformación. O bien, es posible que simplemente desee que GroupBy infiera cómo combinar los resultados
Por ejemplo, podemos usar la función Aplicar
para cambiar las dimensiones de los resultados devueltos
en la serie El uso de aplicar es similar al ejemplo anterior de datos
Supongamos que queremos agrupar los datos por A y calcular la desviación estándar de los datos dentro del grupo. Desviación estándar dentro de los grupos, pero no nos importan los datos de la columna B.
Si agrupamos por A y calculamos la desviación estándar, entonces nuestra función eliminará implícitamente algunas columnas, por lo que
Calcular la desviación estándar directamente no reportará un error
Puede usar variables categóricas para agrupar, y el orden de las agrupaciones será consistente con el orden de las variables categóricas
Puede usar pd para controlar la agrupación. Puedes agrupar columnas específicas por una frecuencia determinada, al igual que con el remuestreo
Puedes agrupar columnas o índices individualmente
Similar a Series y DataFrame, puedes usar head y tail para obtener las filas antes y después de la agrupación
Puedes usar nth() en una Serie o DataFrame para obtener el enésimo elemento en la Serie o DataFrame. Esto también se puede usar para obtener una fila para cada grupo.
Si desea seleccionar elementos que no estén vacíos, puede usar el parámetro de palabra clave dropna. En DataFrame, debe especificar cualquiera o todos (similar a DataFrame.dropna(how='any|all'))
>Al igual que con otros métodos, puede usar as_index=False para obtener filas antes y después de la agrupación. Cuando se usa as_index=False, el nombre del grupo no se usará como índice
También puede pasar una lista de números enteros para seleccionar varios registros a la vez
Usando el método cumcount, puedes ver el orden en el que aparece cada registro en el grupo
Puedes usar ngroup() para ver el orden de los grupos, que es lo opuesto al orden de cumcount.
Nota: Este orden es el mismo que el orden de agrupación al iterar, no el orden observado por primera vez.