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