Python

Uso del método df.describe() de Pandas para el análisis de datos

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% y 75%: 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.

Imagen de Nick115 en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Pandas

Recent Posts

Curiosidad: De dónde vienen foo, bar y foobar

Si revisáis código o documentación de otros programadores, tarde o temprano os toparéis con dos…

3 días ago

BG/NBD + Gamma/Gamma: el modelo probabilístico para CLV en compras continuas

Los dos artículos anteriores cubrieron el CLV clásico —una fórmula útil pero que trata a…

5 días ago

Errores habituales al trabajar con DataFrames grandes en Pandas (y cómo evitarlos)

Hay un momento muy concreto en la vida de casi todo análisis: el código que…

1 semana ago

Champion vs Challenger: Cómo los Bancos Validan Modelos Nuevos antes de Ponerlos en Producción

Has construido un nuevo modelo de credit scoring. Las métricas de validación son mejores que…

2 semanas ago

Cómo Comparar Dos Hipotecas con Todos los Gastos Incluidos

Comparar dos hipotecas parece sencillo: la que tenga el TIN más bajo es la mejor…

2 semanas ago

Segmentación RFM: cómo clasificar tu cartera de clientes antes de calcular el CLV

En un artículo anterior vimos la fórmula clásica del CLV junto a sus limitaciones. Una…

3 semanas ago

This website uses cookies.