Python Tutorial Pandas: DataFrame, intervalo de datas, uso de Pandas

O que sรฃo pandas Python?

Pandas รฉ uma biblioteca de cรณdigo aberto que permite realizar manipulaรงรฃo e anรกlise de dados em Python. Pandas Python biblioteca oferece manipulaรงรฃo de dados e operaรงรตes de dados para tabelas numรฉricas e sรฉries temporais. Pandas fornece uma maneira fรกcil de criar, manipular e controlar os dados. Ele รฉ construรญdo em cima do NumPy, o que significa que ele precisa do NumPy para operar.

Por que usar Pandas?

Cientistas de dados usam Pandas em Python pelas seguintes vantagens:

  • Lida facilmente com dados ausentes
  • Ele usa Sรฉrie para estrutura de dados unidimensional e DataFrame para estrutura de dados multidimensional
  • Ele fornece uma maneira eficiente de dividir os dados
  • Ele fornece uma maneira flexรญvel de mesclar, concatenar ou remodelar os dados
  • Inclui uma poderosa ferramenta de sรฉrie temporal para trabalhar

Resumindo, Pandas รฉ uma biblioteca รบtil em anรกlise de dados. Ele pode ser usado para realizar manipulaรงรฃo e anรกlise de dados. Pandas fornece estruturas de dados poderosas e fรกceis de usar, bem como meios para executar operaรงรตes rapidamente nessas estruturas.

Como instalar Pandas?

Agora neste Python Tutorial do Pandas, aprenderemos como instalar o Pandas em Python.

Para instalar a biblioteca Pandas, consulte nosso tutorial Como instalar o TensorFlow. O Pandas รฉ instalado por padrรฃo. No caso remoto, pandas nรฃo instalados-

Vocรช pode instalar o Pandas usando:

  • Anaconda: conda install -c anaconda pandas
  • In Jupyter Caderno :
import sys
!conda install --yes --prefix {sys.prefix} pandas

O que รฉ um DataFrame do Pandas?

Pandas DataFrameName รฉ uma matriz bidimensional com estrutura de dados rotulada e diferentes tipos de colunas. Um DataFrame รฉ uma forma padrรฃo de armazenar dados em formato tabular, com linhas para armazenar as informaรงรตes e colunas para nomear as informaรงรตes. Por exemplo, o preรงo pode ser o nome de uma coluna e 2,3,4 podem ser os valores do preรงo.

O Data Frame รฉ bem conhecido por estatรญsticos e outros profissionais de dados.

Abaixo uma imagem de um data frame do Pandas:

Pandas DataFrameName

O que รฉ uma sรฉrie?

Uma sรฉrie รฉ uma estrutura de dados unidimensional. Ele pode ter qualquer estrutura de dados como inteiro, flutuante e string. ร‰ รบtil quando vocรช deseja realizar cรกlculos ou retornar uma matriz unidimensional. Uma sรฉrie, por definiรงรฃo, nรฃo pode ter mรบltiplas colunas. Para o รบltimo caso, use a estrutura do quadro de dados.

Python A sรฉrie Pandas tem os seguintes parรขmetros:

  • Dados: pode ser uma lista, dicionรกrio ou valor escalar
pd.Series([1., 2., 3.])
0    1.0
1    2.0
2    3.0
dtype: float64

Vocรช pode adicionar o รญndice com index. Ajuda nomear as linhas. O comprimento deve ser igual ao tamanho da coluna

pd.Series([1., 2., 3.], index=['a', 'b', 'c'])

Abaixo, vocรช cria uma sรฉrie Pandas com um valor ausente para as terceiras linhas. Observe que os valores ausentes em Python sรฃo anotados como โ€œNaNโ€. Vocรช pode usar numpy para criar valor ausente: np.nan artificialmente

pd.Series([1,2,np.nan])

saรญda

0    1.0
1    2.0
2    NaN
dtype: float64

Criar DataFrame do Pandas

Agora neste tutorial do Pandas DataFrame, aprenderemos como criar Python Quadro de dados do Pandas:

Vocรช pode converter um array numpy em um quadro de dados do pandas com pd.Data frame(). O oposto tambรฉm รฉ possรญvel. Para converter um quadro de dados do pandas em um array, vocรช pode usar np.array()

## Numpy to pandas
import numpy as np
h = [[1,2],[3,4]] 
df_h = pd.DataFrame(h)
print('Data Frame:', df_h)

## Pandas to numpy
df_h_n = np.array(df_h)
print('Numpy array:', df_h_n)
Data Frame:    0  1
0  1  2
1  3  4
Numpy array: [[1 2]
 [3 4]]

Vocรช tambรฉm pode usar um dicionรกrio para criar um dataframe do Pandas.

dic = {'Name': ["John", "Smith"], 'Age': [30, 40]}
pd.DataFrame(data=dic)
Idade Nome
0 30 banheiro
1 40 Smith

Dados de alcance dos Pandas

Pandas tem uma API conveniente para criar um intervalo de datas. Vamos aprender com Python Exemplos de pandas:

pd.data_range(data,perรญodo,frequรชncia):

  • O primeiro parรขmetro รฉ a data de inรญcio
  • O segundo parรขmetro รฉ o nรบmero de perรญodos (opcional se a data de tรฉrmino for especificada)
  • O รบltimo parรขmetro รฉ a frequรชncia: dia: 'D,' mรชs: 'M' e ano: 'Y.'
## Create date
# Days
dates_d = pd.date_range('20300101', periods=6, freq='D')
print('Day:', dates_d)

saรญda

Day: DatetimeIndex(['2030-01-01', '2030-01-02', '2030-01-03', '2030-01-04', '2030-01-05', '2030-01-06'], dtype='datetime64[ns]', freq='D')
# Months
dates_m = pd.date_range('20300101', periods=6, freq='M')
print('Month:', dates_m)

saรญda

Month: DatetimeIndex(['2030-01-31', '2030-02-28', '2030-03-31', '2030-04-30','2030-05-31', '2030-06-30'], dtype='datetime64[ns]', freq='M')

Inspecionando Dados

Vocรช pode verificar o inรญcio ou o final do conjunto de dados com head() ou tail() precedido pelo nome do quadro de dados do panda, conforme mostrado no exemplo do Pandas abaixo:

Passo 1) Crie uma sequรชncia aleatรณria com numpy. A sequรชncia tem 4 colunas e 6 linhas

random = np.random.randn(6,4)

Passo 2) Entรฃo vocรช cria um quadro de dados usando pandas.

Use datas_m como รญndice para o quadro de dados. Isso significa que cada linha receberรก um โ€œnomeโ€ ou um รญndice, correspondente a uma data.

Finalmente, vocรช dรก um nome ร s 4 colunas com as colunas de argumento

# Create data with date
df = pd.DataFrame(random,
                  index=dates_m,
                  columns=list('ABCD'))

Passo 3) Usando a funรงรฃo head

df.head(3)
A B C D
2030-01-31 1.139433 1.318510 -0.181334 1.615822
2030-02-28 -0.081995 -0.063582 0.857751 -0.527374
2030-03-31 -0.519179 0.080984 -1.454334 1.314947

Etapa 4) Usando a funรงรฃo tail

df.tail(3)
A B C D
2030-04-30 -0.685448 -0.011736 0.622172 0.104993
2030-05-31 -0.935888 -0.731787 -0.558729 0.768774
2030-06-30 1.096981 0.949180 -0.196901 -0.471556

Etapa 5) Uma prรกtica excelente para obter uma ideia sobre os dados รฉ usar description(). Ele fornece as contagens, mรฉdia, padrรฃo, mรญnimo, mรกximo e percentil do conjunto de dados.

df.describe()
A B C D
contar 6.000000 6.000000 6.000000 6.000000
significar 0.002317 0.256928 -0.151896 0.467601
std 0.908145 0.746939 0.834664 0.908910
min -0.935888 -0.731787 -1.454334 -0.527374
25% -0.643880 -0.050621 -0.468272 -0.327419
50% -0.300587 0.034624 -0.189118 0.436883
75% 0.802237 0.732131 0.421296 1.178404
max 1.139433 1.318510 0.857751 1.615822

Fatiar dados

O รบltimo ponto deste Python O tutorial do Pandas รฉ sobre como fatiar um quadro de dados do pandas.

Vocรช pode usar o nome da coluna para extrair dados em uma coluna especรญfica, conforme mostrado no exemplo do Pandas abaixo:

## Slice
### Using name
df['A']

2030-01-31   -0.168655
2030-02-28    0.689585
2030-03-31    0.767534
2030-04-30    0.557299
2030-05-31   -1.547836
2030-06-30    0.511551
Freq: M, Name: A, dtype: float64

Para selecionar vรกrias colunas, vocรช precisa usar duas vezes o colchete, [[..,..]]

O primeiro par de colchetes significa que vocรช deseja selecionar colunas, os segundos pares de colchetes informam quais colunas vocรช deseja retornar.

df[['A', 'B']].
A B
2030-01-31 -0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 -0.940617
2030-04-30 0.557299 0.507350
2030-05-31 -1.547836 1.276558
2030-06-30 0.511551 1.572085

Vocรช pode dividir as linhas com:

O cรณdigo abaixo retorna as trรชs primeiras linhas

### using a slice for row
df[0:3]
A B C D
2030-01-31 -0.168655 0.587590 0.572301 -0.031827
2030-02-28 0.689585 0.998266 1.164690 0.475975
2030-03-31 0.767534 -0.940617 0.227255 -0.341532

A funรงรฃo loc รฉ usada para selecionar colunas por nomes. Como de costume, os valores antes da vรญrgula representam as linhas e depois referem-se ร  coluna. Vocรช precisa usar colchetes para selecionar mais de uma coluna.

## Multi col
df.loc[:,['A','B']]
A B
2030-01-31 -0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 -0.940617
2030-04-30 0.557299 0.507350
2030-05-31 -1.547836 1.276558
2030-06-30 0.511551 1.572085

Existe outro mรฉtodo para selecionar vรกrias linhas e colunas no Pandas. Vocรช pode usar iloc[]. Este mรฉtodo usa o รญndice em vez do nome das colunas. O cรณdigo abaixo retorna o mesmo quadro de dados acima

df.iloc[:, :2]
A B
2030-01-31 -0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 -0.940617
2030-04-30 0.557299 0.507350
2030-05-31 -1.547836 1.276558
2030-06-30 0.511551 1.572085

Soltar uma coluna

Vocรช pode eliminar colunas usando pd.drop()

df.drop(columns=['A', 'C'])
B D
2030-01-31 0.587590 -0.031827
2030-02-28 0.998266 0.475975
2030-03-31 -0.940617 -0.341532
2030-04-30 0.507350 -0.296035
2030-05-31 1.276558 0.523017
2030-06-30 1.572085 -0.594772

Concatenaรงรฃo

Vocรช pode concatenar dois DataFrame no Pandas. Vocรช pode usar pd.concat()

Primeiro de tudo, vocรช precisa criar dois DataFrames. Atรฉ aรญ tudo bem, vocรช jรก estรก familiarizado com a criaรงรฃo de dataframes

import numpy as np
df1 = pd.DataFrame({'name': ['John', 'Smith','Paul'],
                     'Age': ['25', '30', '50']},
                    index=[0, 1, 2])
df2 = pd.DataFrame({'name': ['Adam', 'Smith' ],
                     'Age': ['26', '11']},
                    index=[3, 4])  

Finalmente, vocรช concatena os dois DataFrame

df_concat = pd.concat([df1,df2]) 
df_concat
Idade nome
0 25 banheiro
1 30 Smith
2 50 Paul
3 26 Adam
4 11 Smith

Drop_duplicados

Se um conjunto de dados pode conter uso de informaรงรตes duplicadas, `drop_duplicates` รฉ fรกcil de excluir linhas duplicadas. Vocรช pode ver que `df_concat` tem uma observaรงรฃo duplicada, `Smith` aparece duas vezes na coluna `name.`

df_concat.drop_duplicates('name')
Idade nome
0 25 banheiro
1 30 Smith
2 50 Paul
3 26 Adam

Classificar valores

Vocรช pode classificar o valor com sort_values

df_concat.sort_values('Age')
Idade nome
4 11 Smith
0 25 banheiro
3 26 Adam
1 30 Smith
2 50 Paul

Renomear: mudanรงa de รญndice

Vocรช pode usar renomear para renomear uma coluna no Pandas. O primeiro valor รฉ o nome da coluna atual e o segundo valor รฉ o nome da nova coluna.

df_concat.rename(columns={"name": "Surname", "Age": "Age_ppl"})
Idade_ppl Sobrenome
0 25 banheiro
1 30 Smith
2 50 Paul
3 26 Adam
4 11 Smith

Resumo

Abaixo estรก um resumo do mรฉtodo mais รบtil para ciรชncia de dados com Pandas

importar dados leitura_csv
criar sรฉrie Sรฉrie
Criar quadro de dados Quadro de dados
Criar intervalo de datas date_range
cabeรงa de retorno cabeรงa
cauda de retorno cauda
Descrever descreve
fatiar usando o nome nome de dados['nome da coluna']
Fatiar usando linhas nome_dados[0:5]

Resuma esta postagem com: