Estadística descriptiva de Pandas
La estadística descriptiva se utiliza para resumir y describir las características básicas de los datos. Pandas proporciona una amplia variedad de funciones estadísticas que permiten obtener rápidamente la distribución general de los datos.
Funciones estadísticas básicas
Ejemplo
import pandas as pd
import numpy as np
# Crear datos de ejemplo
df = pd.DataFrame({
"Edad": [25, 30, 28, 35, 22, 40, 38, 45, 29, 31],
"Salario": [12000, 15000, 11000, 18000, 9000, 20000, 17000, 22000, 12500, 14000],
"Desempeño": [85, 92, 78, 88, 65, 95, 82, 90, 75, 89]
})
print("=== Resumen de datos ===")
print(f"Forma de los datos: {df.shape}")
print(f"\nEstadísticas básicas:)
print(df.describe())
import numpy as np
# Crear datos de ejemplo
df = pd.DataFrame({
"Edad": [25, 30, 28, 35, 22, 40, 38, 45, 29, 31],
"Salario": [12000, 15000, 11000, 18000, 9000, 20000, 17000, 22000, 12500, 14000],
"Desempeño": [85, 92, 78, 88, 65, 95, 82, 90, 75, 89]
})
print("=== Resumen de datos ===")
print(f"Forma de los datos: {df.shape}")
print(f"\nEstadísticas básicas:)
print(df.describe())
Estadísticos de uso común
| Función | Descripción | Ejemplo |
|---|---|---|
count() |
Número de valores no nulos | df["年龄"].count() |
sum() |
Suma | df["薪资"].sum() |
mean() |
Media | df["年龄"].mean() |
median() |
Mediana | df["年龄"].median() |
std() |
Desviación estándar | df["绩效"].std() |
var() |
Varianza | df["绩效"].var() |
min() / max() |
Mínimo/Máximo | df["年龄"].min() |
quantile() |
Cuantil | df["薪资"].quantile(0.25) |
Calcular cuantiles
Ejemplo
import pandas as pd
import numpy as np
s = pd.Series(range(1, 101)) # 1 a 100
print("Varios cuantiles:")
print(f"0% (mínimo): {s.quantile(0)}")
print(f"25%: {s.quantile(0.25)}")
print(f"50% (mediana): {s.quantile(0.50)}")
print(f"75%: {s.quantile(0.75)}")
print(f"100% (máximo): {s.quantile(1)}")
print()
# Calcular varios cuantiles a la vez
print("Cuantiles en lote:")
print(s.quantile([0.1, 0.2, 0.5, 0.8, 0.9]))
import numpy as np
s = pd.Series(range(1, 101)) # 1 a 100
print("Varios cuantiles:")
print(f"0% (mínimo): {s.quantile(0)}")
print(f"25%: {s.quantile(0.25)}")
print(f"50% (mediana): {s.quantile(0.50)}")
print(f"75%: {s.quantile(0.75)}")
print(f"100% (máximo): {s.quantile(1)}")
print()
# Calcular varios cuantiles a la vez
print("Cuantiles en lote:")
print(s.quantile([0.1, 0.2, 0.5, 0.8, 0.9]))
Resumen de describe
describe()Proporciona un resumen estadístico completo de las columnas numéricas del conjunto de datos.
Ejemplo
import pandas as pd
df = pd.DataFrame({
"Edad": [25, 30, 28, 35],
"Salario": [12000, 15000, 11000, 18000],
"Ciudad": ["Pekín", "Shanghái", "Guangzhou", "Shenzhen"]
})
print("Estadísticas de columnas numéricas:")
print(df.describe())
print()
print("Incluyendo todas las columnas:")
print(df.describe(include="all"))
df = pd.DataFrame({
"Edad": [25, 30, 28, 35],
"Salario": [12000, 15000, 11000, 18000],
"Ciudad": ["Pekín", "Shanghái", "Guangzhou", "Shenzhen"]
})
print("Estadísticas de columnas numéricas:")
print(df.describe())
print()
print("Incluyendo todas las columnas:")
print(df.describe(include="all"))
Correlación y covarianza
Ejemplo
import pandas as pd
import numpy as np
df = pd.DataFrame({
"Edad": [25, 30, 28, 35, 22],
"Salario": [12000, 15000, 11000, 18000, 9000],
"Desempeño": [85, 92, 78, 88, 65]
})
print("Matriz de coeficientes de correlación:")
print(df.corr())
print()
# Correlación con una columna específica
print("Correlación con el salario:")
print(df.corr()["Salario"])
import numpy as np
df = pd.DataFrame({
"Edad": [25, 30, 28, 35, 22],
"Salario": [12000, 15000, 11000, 18000, 9000],
"Desempeño": [85, 92, 78, 88, 65]
})
print("Matriz de coeficientes de correlación:")
print(df.corr())
print()
# Correlación con una columna específica
print("Correlación con el salario:")
print(df.corr()["Salario"])
El coeficiente de correlación varía de -1 a 1. Cuanto más cerca de 1, indica una correlación positiva; cuanto más cerca de -1, indica una correlación negativa; cerca de 0, indica que no hay correlación.
Estadística avanzada
Ejemplo
import pandas as pd
import numpy as np
s = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
# Sesgo (mide el grado de asimetría de la distribución)
print(f"Sesgo: {s.skew()}")
# Curtosis (mide el grado de apuntamiento de la distribución)
print(f"Curtosis: {s.kurtosis()}")
print()
# Estadísticas acumulativas
s = pd.Series([1, 2, 3, 4, 5])
print("Suma acumulativa:")
print(s.cumsum())
print()
print("Máximo acumulativo:")
print(s.cummax())
import numpy as np
s = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
# Sesgo (mide el grado de asimetría de la distribución)
print(f"Sesgo: {s.skew()}")
# Curtosis (mide el grado de apuntamiento de la distribución)
print(f"Curtosis: {s.kurtosis()}")
print()
# Estadísticas acumulativas
s = pd.Series([1, 2, 3, 4, 5])
print("Suma acumulativa:")
print(s.cumsum())
print()
print("Máximo acumulativo:")
print(s.cummax())