Pandas es la biblioteca de referencia para el análisis de datos en Python. Lo que es debido a ofrecer una gran cantidad de funciones para la manipulación y análisis altamente eficientes y fáciles de utilizar. Posiblemente uno de los mejores ejemplos de estos es el método df.describe()
. Una función que produce un resumen estadístico del contenido de un DataFrame que permite comprender las características básicas de los datos de una forma rápida y sencilla. En esta entrada se explicará las posibilidades que ofrece la función df.describe()
para resumir los conjuntos de datos.
¿Qué información proporciona df.describe()
?
El método df.describe()
de Pandas genera una tabla con diferentes estadísticas descriptivas de los datos numéricos de cualquier DataFrame que incluyen la media, la desviación estándar, los valores máximos y mínimos, y los cuartiles de los datos numéricos. Por lo que proporciona información de la tendencia central, la dispersión y la distribución de los datos.
Uso básico de df.describe()
Para trabajar con la función df.describe()
solamente es necesario contar con un DataFrame y llamar a este método. Para eso se puede usar el conjunto de datos como planets
que se puede cargar desde la biblioteca Seaborn. Para lo que se puede usar el siguiente código.
import seaborn as sns import pandas as pd # Cargar el dataset "planets" de Seaborn planets = sns.load_dataset("planets") print(planets.head())
method number orbital_period mass distance year 0 Radial Velocity 1 269.300 7.10 77.40 2006 1 Radial Velocity 1 874.774 2.21 56.95 2008 2 Radial Velocity 1 763.000 2.60 19.84 2011 3 Radial Velocity 1 326.030 19.40 110.62 2007 4 Radial Velocity 1 516.220 10.50 119.47 2009
Una vez que se han cargado los datos, se puede llamar a df.describe()
para obtener las estadísticas que resumen los datos.
# Obtención de las estadísticas descriptivas resume = planets.describe() print(resume)
number orbital_period mass distance year count 1035.000000 992.000000 513.000000 808.000000 1035.000000 mean 1.785507 2002.917596 2.638161 264.069282 2009.070531 std 1.240976 26014.728304 3.818617 733.116493 3.972567 min 1.000000 0.090706 0.003600 1.350000 1989.000000 25% 1.000000 5.442540 0.229000 32.560000 2007.000000 50% 1.000000 39.979500 1.260000 55.250000 2010.000000 75% 2.000000 526.005000 3.040000 178.500000 2012.000000 max 7.000000 730000.000000 25.000000 8500.000000 2014.000000
Este código generará un resumen estadístico de todas las columnas numéricas en el DataFrame planets
. Nótese que no hay valores para la columna method
ya que esta es categórica y, por lo tanto, no se calculan las estadísticas.
Interpretación de los resultados
Una vez obtenido el resumen es clave comprender que información se muestra en cada una de las filas de la tabla. En concreto la información de cada fila es:
count
: Indica el número de observaciones (no nulas) en cada columna.mean
: Muestra la media de los valores en cada columna.std
: Contiene la desviación estándar que mide la dispersión de los valores alrededor de la media.min
: Devuelve el valor mínimo en cada columna.25%
,50%
y75%
: Representan los percentiles correspondientes. El 25% es el primer cuartil (Q1), el 50% es la mediana (Q2), y el 75% es el tercer cuartil (Q3).max
: Informa del valor máximo en cada columna.
Nótese que df.describe()
ignora automáticamente los datos nulos. En el ejemplo se puede ver que no todas las columnas tienen el mismo número de registros ya hay valores que no se conocen para algunos planteas. Es importante tener en cuenta esto ya que la falta de datos puede afectar a los resultados.
Configuración del resumen estadístico
El método df.describe()
permite configurar los valores que se muestran en los percentiles, por lo que no está limitado a los valores por defecto de 25%, 50% y 75%. Para ello se puede usar el parámetro percentiles
del método para indicar los valores que se desean mostrar. Por ejemplo, se puede obtener datos para el 10% y 90% con el siguiente código.
# Obtención de las estadísticas para los percentiles 10% y 90% resume = planets.describe(percentiles=[0.1, 0.9]) print(resume)
number orbital_period mass distance year count 1035.000000 992.000000 513.000000 808.000000 1035.000000 mean 1.785507 2002.917596 2.638161 264.069282 2009.070531 std 1.240976 26014.728304 3.818617 733.116493 3.972567 min 1.000000 0.090706 0.003600 1.350000 1989.000000 10% 1.000000 2.900130 0.033400 15.500000 2003.000000 50% 1.000000 39.979500 1.260000 55.250000 2010.000000 90% 3.000000 1845.000000 7.410720 600.000000 2013.000000 max 7.000000 730000.000000 25.000000 8500.000000 2014.000000
Conclusiones
En esta entrada, se ha explicado cómo se puede utilizar el método df.describe()
de Pandas para obtener un resumen estadístico de cualquier conjunto de datos. Incluyendo cómo configurar la salida para adaptarla a nuestras necesidades. Una función sencilla, pero de gran ayuda para comprender la forma del contenido de cualquier DataFrame.
Deja una respuesta