English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Estadísticas descriptivas de Pandas

Ejemplo de operaciones estadísticas descriptivas de Pandas

DataFrame se utiliza en un gran número de operaciones de estadísticas descriptivas y otras operaciones relacionadas. La mayoría son agregaciones, como sum(), mean(), pero algunas agregaciones (como sumsum()) pueden producir objetos de mismo tamaño. En general, estos métodos utilizan el parámetro de eje, como ndarray. {sum, std, ...} pero pueden especificarse por nombre o por entero DataFrame − Índice (axis=0, por defecto), Columna (axis=1)

Vamos a crear un DataFrame y usar este objeto para todas las operaciones en este capítulo.

Ejemplo

 import pandas como pd
 import numpy como np
 #Crear un diccionario de series
 d = {'Nombre':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
    '''Lee','David','Gasper','Betina','Andres']),
    '''Edad':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
    'Calificación':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
 }
 # Crear un DataFrame
 df = pd.DataFrame(d)
 print(df)

Resultados de ejecución:

        Edad  Nombre   Calificación
0   25   Tom     4.23
1   26   James   3.24
2   25   Ricky   3.98
3   23   Vin     2.56
4   30   Steve   3.20
5   29   Smith   4.60
6   23   Jack    3.80
7   34   Lee     3.78
8   40   David   2.98
9   30   Gasper  4.80
10  51   Betina  4.10
11  46   Andres  3.65

sum()

Devuelve la suma de los valores de los ejes solicitados. Por defecto, el eje es el índice (eje=0)

 import pandas como pd
 import numpy como np
  
 #Crear un diccionario de Series
 d = {'Nombre':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
    '''Lee','David','Gasper','Betina','Andres']),
    '''Edad':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
    'Calificación':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
 }
 #Crear un DataFrame
 df = pd.DataFrame(d)
 print(df.sum())

Resultados de ejecución:

    Edad                                                    382
Nombre  TomJamesRickyVinSteveSmithJackLeeDavidGasperBe...
Rating                                               44.92
dtype: object

Se agrega una cadena a cada columna individual

axis=1

Esta sintaxis mostrará el siguiente contenido.

 import pandas como pd
 import numpy como np
  
 #Crear un diccionario de series
 d = {'Nombre':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
    '''Lee','David','Gasper','Betina','Andres']),
    '''Edad':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
    'Calificación':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
 }
  
 #Crear un DataFrame
 df = pd.DataFrame(d)
 print(df.sum(1))

Resultados de ejecución:

    0    29.23
1    29.24
2    28.98
3    25.56
4    33.20
5    33.60
6    26.80
7    37.78
8    42.98
9    34.80
10   55.10
11   49.65
dtype: float64

mean()

Devuelve el valor promedio

 import pandas como pd
 import numpy como np
 #Crear un diccionario de series
 d = {'Nombre':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
    '''Lee','David','Gasper','Betina','Andres']),
    '''Edad':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
    'Calificación':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
 }
 #Crear un DataFrame
 df = pd.DataFrame(d)
 print(df.mean())

Resultados de ejecución:

    Edad       31.833333
Rating     3.743333
dtype: float64

std()

Devuelve la desviación estándar Bressel de las columnas numéricas.

 import pandas como pd
 import numpy como np
 #Crear un diccionario de series
 d = {'Nombre':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
    '''Lee','David','Gasper','Betina','Andres']),
    '''Edad':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
    'Calificación':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
 }
 #Crear un DataFrame
 df = pd.DataFrame(d)
 print(df.std())

Resultados de ejecución:

    Edad       9.232682
Rating  0.661628
dtype: float64

Funciones y Descripción

Ahora vamos a entender las funciones de estadísticas descriptivas en Python Pandas. La siguiente tabla enumera las funciones importantes:

NúmeroMétodoDescripción
1count()Números no vacíos
2sum()Total
3mean()Promedio
4median()Mediana
5mode()Patrón
6std()Desviación estándar
7min()Mínimo
8max()Máximo
9abs()Valor absoluto
10prod()Producto
11cumsum()Suma acumulativa
12cumprod()Multiplicación acumulativa
Nota: − Ya que DataFrame es una estructura de datos heterogénea. Las operaciones genéricas no son aplicables a todas las funciones.
    Funciones como sum(), cumsum() se pueden usar para elementos de datos numéricos y caracteres (o) cadenas sin generar ningún error. Aunque los conjuntos de caracteres no se utilizan comúnmente, no lanzan ninguna excepción.
  • Cuando DataFrame contiene datos de caracteres o cadenas, funciones como abs(), cumprod() generan excepciones, ya que dichas operaciones no se pueden ejecutar.

Resumen de datos

  import pandas como pd
 import numpy como np
 #Crear un diccionario de series
 d = {'Nombre':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
    '''Lee','David','Gasper','Betina','Andres']),
    '''Edad':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
    'Calificación':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
 }
 #Crear un DataFrame
 df = pd.DataFrame(d)
 print(df.describe())

Resultados de ejecución:

                Edad  Rating
count    12.000000      12.000000
mean     31.833333       3.743333
std       9.232682       0.661628
min      23.000000       2.560000
25%      25.000000       3.230000
50%      29.500000       3.790000
75%      35.500000       4.132500
max      51.000000       4.800000

Esta función proporciona valores promedio, std y IQR. Y, la función no incluye columnas de caracteres y resúmenes dados de columnas numéricas. "include" es un parámetro necesario para pasar información sobre qué columnas considerar en el resumen. Lista de valores; por defecto es "número".

objeto − Resumen de columnas de cadenasnúmero − Resumen de columnas numéricastodas − Resumen de todas las columnas juntas (no debería considerarse como un valor de lista)

A continuación, en el programa utilizamos la siguiente sentencia y ejecutamos y mostramos:

  import pandas como pd
 import numpy como np
 #Crear un diccionario de series
 d = {'Nombre':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
    '''Lee','David','Gasper','Betina','Andres']),
    '''Edad':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
    'Calificación':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
 }
 #Crear un DataFrame
 df = pd.DataFrame(d)
 print(df.describe(include=['object']))

Resultados de ejecución:

           Nombre
count       12
unique      12
top  Ricky
freq         1

A continuación, en el programa utilizamos la siguiente sentencia y ejecutamos y mostramos:

  import pandas como pd
 import numpy como np
 #Crear un diccionario de series
 d = {'Nombre':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
    '''Lee','David','Gasper','Betina','Andres']),
    '''Edad':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
    'Calificación':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
 }
 #Crear un DataFrame
 df = pd.DataFrame(d)
 print(df. describe(include='all'))

Resultados de ejecución:

           Edad Nombre Calificación
count   12.000000        12    12.000000
unique NaN        12          NaN
top NaN Ricky NaN
freq NaN         1          NaN
mean    31.833333       NaN     3.743333
std      9.232682       NaN 0.661628
min     23.000000 NaN     2.560000
25%     25.000000 NaN     3.230000
50%     29.500000 NaN     3.790000
75%     35.500000 NaN     4.132500
max     51.000000 NaN     4.800000