terça-feira, 4 de agosto de 2020

Resumindo um dataframe pandas

Photo by Brett Jordan on Unsplash

Nos exemplos dos tutoriais anteriores vimos como chamar alguns métodos das séries. Nesses exemplos trabalhamos apenas com colunas ou séries. Esses métodos eram de agregação ou redução que retornavam séries. Chamando esses mesmos métodos a partir de um dataframe as operações serão executadas em todas as colunas e não apenas em uma, reduzindo os resultados para cada coluna do dataframe. Muitos desses métodos retornam uma série com os nomes das colunas e os valores correspondentes.
Nesse tutorial, vamos ver mais alguns dos atributos e métodos que podemos utilizar com os dataframe Pandas. Vamos utilizar o dataframe filmes.csv, que já usamos nos post anteriores.

Como resumir um dataframe

Vamos abrir o dataframe filmes e chamar os atributos shape, size e ndim. E depois vamos utilizar a função interna do python len(). O atributo shape retorna uma tupla com os dois valores, o primeiro é o número de linhas do dataframe e o segundo é o número de colunas. O atributo size retorna o numero de elementos do dataframe. O ndim retorna o número de dimensões do dataframe. E a função len retorna o número de linhas do dataframe Pandas.

>>> import pandas as pd
>>> filmes = pd.read_csv('filmes.csv')
>>> filmes.shape
(9262, 9)
>>> filmes.size
83358
>>> filmes.ndim
2
>>> len(filmes)
9262

Nos dataframe é comum estar faltando alguns elementos, se você quiser saber a quantidade de, apenas, elementos presentes use o método count(). Esse método retorna uma série com os rótulos das colunas e a quantidade de elementos com valores, excluindo da contagem os elementos vazios.

>>> filmes.count()
indice                     9262
codigo_obra                9262
titulo_original            9262
titulo_brasil              9262
ano_producao               9259
diretor                    9262
razao_social_requerente    9262
cnpj_requerente            9262
data_exibicao              9262
dtype: int64

Nesse exemplo os números retornados são iguais ao número de linhas, isso porque no dataframe filmes.csv não existe elementos vazios.
Se você precisar de estatísticas básicas como o valor mínimo, máximo, média e mediana, a biblioteca Pandas disponibiliza métodos que fornecem essas estatísticas. Veja um exemplo abaixo:

>>> filmes.min()
indice                                                   0
codigo_obra                                              1
titulo_original                         A PRIMEIRA MISSA""
titulo_brasil                           A PRIMEIRA MISSA""
ano_producao                                           200
diretor                                   \t PABLO TRAPERO
razao_social_requerente    13 PRODUÇÕES E LOCAÇÕES LTDA-ME
cnpj_requerente                         00.020.648/0001-20
data_exibicao                                   01/02/2005
dtype: object

>>> filmes.max()
indice                                             9261
codigo_obra                                    20002501
titulo_original            ÚLTIMO TANGO EM BUENOS AIRES
titulo_brasil                   ÚLTIMOS DIAS NO DESERTO
ano_producao                                       2020
diretor                                      ÉRIC WARIN
razao_social_requerente       ÍRIS CINEMATOGRÁFICA LTDA
cnpj_requerente                      97.533.170/0001-73
data_exibicao                                 31/mar/17
dtype: object

# média
>>> filmes.mean()
indice          4.630500e+03
codigo_obra     1.053494e+07
ano_producao    2.009945e+03
dtype: float64

# mediana
>>> filmes.median()
indice              4630.5
codigo_obra     15004498.0
ano_producao        2011.0
dtype: float64

Você pode obter essas estatísticas chamando um único método: o describe().

>>> filmes.describe()
           indice   codigo_obra  ano_producao
count  9262.00000  9.262000e+03   9259.000000
mean   4630.50000  1.053494e+07   2009.944918
std    2673.85343  7.714715e+06     20.439854
min       0.00000  1.000000e+00    200.000000
25%    2315.25000  4.165462e+05   2006.000000
50%    4630.50000  1.500450e+07   2011.000000
75%    6945.75000  1.600608e+07   2015.000000
max    9261.00000  2.000250e+07   2020.000000

Uma coisa que afeto as estatísticas são os elementos vazios. Se você quer que esses elementos sejam ignorados utilize o parâmetro skipna passando o valor True. Se passarmos o valor False, os elementos vazios vão entrar no calculo. Veja um exemplo:

>>> filmes.min(skipna=False)
indice                                                   0
codigo_obra                                              1
titulo_original                         A PRIMEIRA MISSA""
titulo_brasil                           A PRIMEIRA MISSA""
ano_producao                                           200
diretor                                   \t PABLO TRAPERO
razao_social_requerente    13 PRODUÇÕES E LOCAÇÕES LTDA-ME
cnpj_requerente                         00.020.648/0001-20
data_exibicao                                   01/02/2005
dtype: object

Todos os métodos de estatísticas têm o parâmetro skipna. O valor padrão é True.

0 comentários:

Postar um comentário