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

Estatísticas Descritivas do Pandas

Exemplo de operação estatística descritiva do Pandas

O DataFrame é usado para uma grande quantidade de cálculos, estatísticas descritivas e outras operações relacionadas. A maioria delas é agregação, como sum(), mean(), mas algumas agregações (como sumsum()) produzem objetos de tamanho idêntico. Em geral, esses métodos usam o parâmetro de eixo, como ndarray. {sum, std, ...} mas podem ser especificados por nome ou inteiro DataFrame − Índice (axis=0, padrão), coluna (axis=1)

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

Exemplo

 import pandas como pd
 import numpy como np
 #Criar um dicionário de series
 d = {'Nome':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
    'Lee','David','Gasper','Betina','Andres']),
    '''Idade':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
    'Avaliação':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])
 }
 # Criação de um DataFrame
 df = pd.DataFrame(d)
 print(df)

Resultados da Execução:

        Idade Nome Avaliação
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()

Retorna a soma dos valores do eixo solicitado. Pelo padrão, o eixo é o índice (eixo=0)

 import pandas como pd
 import numpy como np
  
 #Cria um dicionário de Series
 d = {'Nome':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
    'Lee','David','Gasper','Betina','Andres']),
    '''Idade':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
    'Avaliação':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])
 }
 #Criar um DataFrame
 df = pd.DataFrame(d)
 print(df.sum())

Resultados da Execução:

    Idade                                                    382
Nome  TomJamesRickyVinSteveSmithJackLeeDavidGasperBe...
Avaliação                                               44.92
dtype: object

Cada coluna individual adiciona uma string

axis=1

Esta sintaxe produz o seguinte conteúdo.

 import pandas como pd
 import numpy como np
  
 #Criar um dicionário de series
 d = {'Nome':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
    'Lee','David','Gasper','Betina','Andres']),
    '''Idade':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
    'Avaliação':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])
 }
  
 #Criar um DataFrame
 df = pd.DataFrame(d)
 print(df.sum(1))

Resultados da Execução:

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

Retorna a média.

 import pandas como pd
 import numpy como np
 #Criar um dicionário de series
 d = {'Nome':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
    'Lee','David','Gasper','Betina','Andres']),
    '''Idade':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
    'Avaliação':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])
 }
 #Criar um DataFrame
 df = pd.DataFrame(d)
 print(df.mean())

Resultados da Execução:

    Idade       31.833333
Avaliação     3.743333
dtype: float64

std()

Retorna a desvio padrão Bressel das colunas numéricas.

 import pandas como pd
 import numpy como np
 #Criar um dicionário de series
 d = {'Nome':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
    'Lee','David','Gasper','Betina','Andres']),
    '''Idade':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
    'Avaliação':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])
 }
 #Criar um DataFrame
 df = pd.DataFrame(d)
 print(df.std())

Resultados da Execução:

    Idade       9.232682
Avaliação  0.661628
dtype: float64

Funções & Descrição

Agora vamos entender as funcionalidades de estatísticas descritivas no Python Pandas. A tabela a seguir lista funcionalidades importantes:

NúmeroMétodoDescrição
1count()Nenhum valor vazio
2sum()Total
3mean()Média
4median()Mediana
5mode()Padrão
6std()Desvio padrão
7min()Mínimo
8max()Máximo
9abs()Valor absoluto
10prod()Produto
11cumsum()Adição acumulativa
12cumprod()Multiplicação acumulativa
Atenção: − Porque o DataFrame é uma estrutura de dados heterogênea. Operações genéricas não se aplicam a todas as funções.
    Funções como sum() e cumsum() podem ser usadas para dados numéricos e caracteres (ou) strings sem gerar qualquer erro. Embora conjuntos de caracteres não sejam amplamente usados, não geram nenhuma exceção.
  • Quando o DataFrame contém dados de caracteres ou strings, funções como abs() e cumprod() geram exceções, pois essas operações não podem ser executadas.

Resumo de dados

  import pandas como pd
 import numpy como np
 #Criar um dicionário de series
 d = {'Nome':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
    'Lee','David','Gasper','Betina','Andres']),
    '''Idade':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
    'Avaliação':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])
 }
 #Criar um DataFrame
 df = pd.DataFrame(d)
 print(df.describe())

Resultados da Execução:

                Idade  Avaliação
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 fornece valores médios, std e IQR. E, a função não inclui colunas de caracteres e resumos específicos de colunas numéricas. “include” é um parâmetro necessário para passar informações sobre quais colunas considerar na agregação. Lista de valores; o valor padrão é “number”.

object − Resumo das colunas de stringsnumber − Resumo das colunas numéricasall − Resumo de todas as colunas juntas (não deve ser tratado como valor de lista).

A seguir, usamos a seguinte instrução no programa e executamos e mostramos:

  import pandas como pd
 import numpy como np
 #Criar um dicionário de series
 d = {'Nome':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
    'Lee','David','Gasper','Betina','Andres']),
    '''Idade':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
    'Avaliação':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])
 }
 #Criar um DataFrame
 df = pd.DataFrame(d)
 print(df.describe(include=['object']))

Resultados da Execução:

           Nome
count       12
unique      12
top  Ricky
freq         1

A seguir, usamos a seguinte instrução no programa e executamos e mostramos:

  import pandas como pd
 import numpy como np
 #Criar um dicionário de series
 d = {'Nome':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
    'Lee','David','Gasper','Betina','Andres']),
    '''Idade':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
    'Avaliação':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])
 }
 #Criar um DataFrame
 df = pd.DataFrame(d)
 print(df. describe(include='all'))

Resultados da Execução:

           Idade Nome Avaliação
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