Python Pandas - Estadísticas descriptivas

Una gran cantidad de métodos calculan colectivamente estadísticas descriptivas y otras operaciones relacionadas en DataFrame. La mayoría de estas son agregaciones comosum(), mean(), pero algunos de ellos, como sumsum(), producir un objeto del mismo tamaño. En general, estos métodos requierenaxisargumento, al igual que ndarray. {sum, std, ...}, pero el eje se puede especificar por nombre o entero

  • DataFrame - "índice" (eje = 0, predeterminado), "columnas" (eje = 1)

Creemos un DataFrame y usemos este objeto a lo largo de este capítulo para todas las operaciones.

Ejemplo

import pandas as pd
import numpy as np

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','Andres']),
   'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
   'Rating':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])
}

#Create a DataFrame
df = pd.DataFrame(d)
print df

Sus output es como sigue -

Age  Name   Rating
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

suma()

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

import pandas as pd
import numpy as np
 
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','Andres']),
   'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
   'Rating':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])
}

#Create a DataFrame
df = pd.DataFrame(d)
print df.sum()

Sus output es como sigue -

Age                                                    382
Name     TomJamesRickyVinSteveSmithJackLeeDavidGasperBe...
Rating                                               44.92
dtype: object

Cada columna individual se agrega individualmente (se agregan cadenas).

eje = 1

Esta sintaxis dará el resultado que se muestra a continuación.

import pandas as pd
import numpy as np
 
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','Andres']),
   'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
   'Rating':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])
}
 
#Create a DataFrame
df = pd.DataFrame(d)
print df.sum(1)

Sus output es como sigue -

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

media()

Devuelve el valor medio.

import pandas as pd
import numpy as np

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','Andres']),
   'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
   'Rating':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])
}

#Create a DataFrame
df = pd.DataFrame(d)
print df.mean()

Sus output es como sigue -

Age       31.833333
Rating     3.743333
dtype: float64

std ()

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

import pandas as pd
import numpy as np

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','Andres']),
   'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
   'Rating':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])
}

#Create a DataFrame
df = pd.DataFrame(d)
print df.std()

Sus output es como sigue -

Age       9.232682
Rating    0.661628
dtype: float64

Funciones y descripción

Entendamos ahora las funciones en Estadísticas descriptivas en Python Pandas. La siguiente tabla enumera las funciones importantes:

No Señor. Función Descripción
1 contar() Número de observaciones no nulas
2 suma() Suma de valores
3 media() Media de valores
4 mediana() Mediana de valores
5 modo() Modo de valores
6 std () Desviación estándar de los valores
7 min () Valor mínimo
8 max () Valor máximo
9 abdominales() Valor absoluto
10 pinchar() Producto de valores
11 cumsum () Suma acumulada
12 cumprod () Producto acumulativo

Note- Dado que DataFrame es una estructura de datos heterogénea. Las operaciones genéricas no funcionan con todas las funciones.

  • Funciones como sum(), cumsum()trabajar con elementos de datos de cadena tanto numéricos como de caracteres (o) sin ningún error. Aunquen En la práctica, las agregaciones de caracteres nunca se usan en general, estas funciones no arrojan ninguna excepción.

  • Funciones como abs(), cumprod() lanzar una excepción cuando el DataFrame contiene datos de caracteres o cadenas porque tales operaciones no se pueden realizar.

Resumen de datos

los describe() La función calcula un resumen de estadísticas pertenecientes a las columnas de DataFrame.

import pandas as pd
import numpy as np

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','Andres']),
   'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
   'Rating':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])
}

#Create a DataFrame
df = pd.DataFrame(d)
print df.describe()

Sus output es como sigue -

Age         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 da mean, std y IQRvalores. Y la función excluye las columnas de caracteres y un resumen dado sobre las columnas numéricas.'include'es el argumento que se utiliza para transmitir la información necesaria sobre qué columnas deben tenerse en cuenta para resumir. Toma la lista de valores; por defecto, 'número'.

  • object - Resume columnas de cadena
  • number - Resume columnas numéricas
  • all - Resume todas las columnas juntas (no debe pasarlo como un valor de lista)

Ahora, use la siguiente declaración en el programa y verifique la salida:

import pandas as pd
import numpy as np

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','Andres']),
   'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
   'Rating':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])
}

#Create a DataFrame
df = pd.DataFrame(d)
print df.describe(include=['object'])

Sus output es como sigue -

Name
count       12
unique      12
top      Ricky
freq         1

Ahora, use la siguiente declaración y verifique el resultado:

import pandas as pd
import numpy as np

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','Andres']),
   'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
   'Rating':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])
}

#Create a DataFrame
df = pd.DataFrame(d)
print df. describe(include='all')

Sus output es como sigue -

Age          Name       Rating
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