Python Pandas - estatísticas descritivas

Um grande número de métodos calcula coletivamente estatísticas descritivas e outras operações relacionadas no DataFrame. A maioria dessas são agregações comosum(), mean(), mas alguns deles, como sumsum(), produz um objeto do mesmo tamanho. De um modo geral, esses métodos levam umaxisargumento, assim como ndarray. {sum, std, ...}, mas o eixo pode ser especificado por nome ou inteiro

  • DataFrame - “índice” (eixo = 0, padrão), “colunas” (eixo = 1)

Vamos criar um DataFrame e usar esse objeto ao longo deste capítulo para todas as operações.

Exemplo

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

Está output é o seguinte -

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

soma()

Retorna a soma dos valores do eixo solicitado. Por padrão, o eixo é índice (eixo = 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()

Está output é o seguinte -

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

Cada coluna individual é adicionada individualmente (Strings são anexadas).

eixo = 1

Esta sintaxe fornecerá a saída conforme mostrado abaixo.

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)

Está output é o seguinte -

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

significar()

Retorna o valor médio

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()

Está output é o seguinte -

Age       31.833333
Rating     3.743333
dtype: float64

std ()

Retorna o desvio padrão de Bressel das colunas 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()

Está output é o seguinte -

Age       9.232682
Rating    0.661628
dtype: float64

Funções e descrição

Vamos agora entender as funções em Estatística Descritiva em Python Pandas. A tabela a seguir lista as funções importantes -

Sr. Não. Função Descrição
1 contagem() Número de observações não nulas
2 soma() Soma de valores
3 significar() Média dos Valores
4 mediana() Mediana de Valores
5 modo() Modo de valores
6 std () Desvio Padrão dos Valores
7 min () Valor mínimo
8 max () Valor máximo
9 abdômen() Valor absoluto
10 prod () Produto de Valores
11 cumsum () Soma Cumulativa
12 cumprod () Produto Cumulativo

Note- Uma vez que DataFrame é uma estrutura de dados heterogênea. As operações genéricas não funcionam com todas as funções.

  • Funções como sum(), cumsum()trabalhar com elementos de dados numéricos e de caracteres (ou) de string sem nenhum erro. Apesarn prática, agregações de caracteres nunca são usadas geralmente, essas funções não lançam nenhuma exceção.

  • Funções como abs(), cumprod() lançar exceção quando o DataFrame contém dados de caractere ou string porque tais operações não podem ser executadas.

Resumindo Dados

o describe() função calcula um resumo das estatísticas pertencentes às colunas 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()

Está output é o seguinte -

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 função dá o mean, std e IQRvalores. E a função exclui as colunas de caracteres e o resumo fornecido sobre as colunas numéricas.'include'é o argumento usado para passar as informações necessárias sobre quais colunas precisam ser consideradas para o resumo. Pega a lista de valores; por padrão, 'número'.

  • object - Resume colunas String
  • number - Resume as colunas numéricas
  • all - Resume todas as colunas juntas (não deve ser passado como um valor de lista)

Agora, use a seguinte instrução no programa e verifique a saída -

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'])

Está output é o seguinte -

Name
count       12
unique      12
top      Ricky
freq         1

Agora, use a seguinte instrução e verifique a saída -

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')

Está output é o seguinte -

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