"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo contener eficientemente una columna de pandas y contar valores en cada contenedor?

¿Cómo contener eficientemente una columna de pandas y contar valores en cada contenedor?

Publicado el 2025-02-06
Navegar:194

How to Efficiently Bin a Pandas Column and Count Values in Each Bin?

binning una columna con pandas

en el análisis de datos, a menudo es útil reducir los datos en categorías para simplificar su representación y análisis. Esta es una técnica común cuando se trabaja con datos numéricos, como cuando se trata de porcentajes.

Suponga que tenemos una columna de marco de datos llamada "porcentaje" que contiene valores numéricos, como se muestra a continuación:

df['percentage'].head()
46.5
44.2
100.0
42.12

para contener esta columna y obtener los recuentos de valor para cada contenedor, podemos usar la función pd.cut. Aquí hay dos formas de lograr esto:

usando pd.cut con value_counts:

bins = [0, 1, 5, 10, 25, 50, 100]
df['binned'] = pd.cut(df['percentage'], bins)
print(df.groupby(df['binned']).size())

usando np.searchSorted y groupby:

df['binned'] = np.searchsorted(bins, df['percentage'].values)
print(df.groupby(df['binned']).size())

ambos métodos devolverán la siguiente salida:

percentage
(0, 1]       0
(1, 5]       0
(5, 10]      0
(10, 25]     0
(25, 50]     3
(50, 100]    1
dtype: int64

Esta salida indica que no hay valores en los contenedores (0, 1], (1, 5], (5, 10] y (10, 25]. Tres valores caen en el Bin (25, 50], y un valor cae en el contenedor (50, 100].

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3