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:
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] |

