Python Tutorial de Pandas: DataFrame, Intervalo de Datas e Uso
⚡ Resumo Inteligente
Pandas é um software de código aberto. Python Biblioteca para manipulação de dados tabulares. Ela fornece as estruturas Series e DataFrame, intervalos de datas, funções auxiliares de inspeção e as operações de fatiar, remover, concatenar, classificar e renomear, demonstradas ao longo deste passo a passo.

O que é Pandas em Python?
Pandas é uma biblioteca de código aberto que permite realizar manipulação e análise de dados em Python, abrangendo tabelas numéricas e séries temporais. Oferece uma maneira fácil de criar, manipular e organizar dados, e é construído sobre NumPyPortanto, o NumPy precisa estar presente para que o Pandas funcione.
Por que usar Pandas?
Cientistas de dados usam Pandas em Python pelas seguintes vantagens:
- Lida facilmente com dados ausentes
- Utiliza Series para dados unidimensionais e DataFrame para dados multidimensionais.
- Ele fornece uma maneira eficiente de dividir os dados
- Ele fornece uma maneira flexível de mesclar, concatenar ou remodelar os dados
- Inclui um poderoso conjunto de ferramentas para séries temporais.
Resumindo, o Pandas fornece estruturas de dados poderosas e fáceis de usar, além dos meios para operar nelas rapidamente, razão pela qual ele é a base da maioria dos projetos. Python análise de dados <span class="word" data-word="work." style="--word-index: 2; translate: none; rotate: none; scale: none; transform: translate(0px, 0px); opacity: 1;">work.</span>
Como instalar o Pandas
O Pandas é distribuído com o Anaconda e com a maioria dos serviços de notebooks gerenciados, portanto, geralmente já está instalado. Se a importação falhar, um dos comandos abaixo o adiciona. O ambiente criado em Como instalar o TensorFlow Também contém pandas.
- pip:
pip install pandas - Anaconda:
conda install -c anaconda pandas - Dentro de um Jupyter Portátil célula:
import sys !conda install --yes --prefix {sys.prefix} pandas
O que é um DataFrame do Pandas?
Um DataFrame do Pandas é uma estrutura de dados bidimensional rotulada, cujas colunas podem conter diferentes tipos de dados. É a maneira padrão de armazenar dados em formato tabular: as linhas contêm as observações e as colunas nomeiam as informações. Por exemplo, preço Pode ser o nome de uma coluna e 2, 3, 4 podem ser os valores dos preços.
Os data frames são bem conhecidos por estatísticos e outros profissionais da área de dados. A imagem abaixo mostra esse formato — um índice de linhas rotulado na lateral e colunas nomeadas na parte superior.
O que é uma série?
Uma Série é uma estrutura de dados unidimensional. Ela pode armazenar qualquer tipo de dado, como inteiro, ponto flutuante ou string, e é útil quando você deseja realizar um cálculo ou retornar uma matriz unidimensional. Uma Série, por definição, não pode ter múltiplas colunas; para esse caso, utilize a estrutura DataFrame.
O construtor da classe Series do Pandas aceita os seguintes parâmetros:
- Data: Pode ser uma lista, um dicionário ou um valor escalar.
pd.Series([1., 2., 3.])
0 1.0 1 2.0 2 3.0 dtype: float64
Você pode adicionar um índice com indexEla nomeia as linhas e seu 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 na terceira linha. Valores ausentes em Python são mostrados como NaN e np.nan O NumPy cria um artificialmente.
pd.Series([1,2,np.nan])
saída
0 1.0 1 2.0 2 NaN dtype: float64
Criar DataFrame do Pandas
Você pode converter um array NumPy em um DataFrame com pd.DataFrame()O oposto também é possível: para converter um DataFrame de volta em um array, use np.array(), ou df.to_numpy(), conforme recomendado na documentação atual do Pandas.
## 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]]
Um dicionário funciona tão bem como entrada para pd.DataFrame().
dic = {'Name': ["John", "Smith"], 'Age': [30, 40]}
pd.DataFrame(data=dic)
| Idade | Nome | |
|---|---|---|
| 0 | 30 | banheiro |
| 1 | 40 | Smith |
Dados de alcance dos Pandas
O Pandas possui uma API prática para criar um intervalo de datas, que se torna o índice de uma série temporal. A chamada tem o seguinte formato:
pd.date_range(start, periods, freq):
- 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êsMe anoY
## 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')
Nota de versão: o mês apelido M O uso acima está obsoleto desde o Pandas 2.2 e foi removido no Pandas 3.0. Nas versões atuais, passe freq='ME' para o final do mês; o índice resultante é idêntico.
Inspecionando Dados
Você pode verificar o início ou o fim de um conjunto de dados com head() or tail() A chamada foi feita no DataFrame, como mostra o 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) Em seguida, você cria um DataFrame usando o Pandas.
Uso dates_m como índice, de modo que cada linha receba um nome correspondente a uma data, e nomeie as 4 colunas com o columns argumento.
# Create data with date df = pd.DataFrame(random, index=dates_m, columns=list('ABCD'))
Porque np.random.randn() Se não for plantada semente, seus resultados serão diferentes dos impressos aqui. Ligue. np.random.seed(0) Primeiro, se você quiser reproduzir um conjunto fixo.
Passo 3) Utilizando a função de cabeça
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 |
Passo 4) Usando a função de cauda
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 |
Passo 5) Uma excelente maneira de obter uma pista sobre os dados é describe()A função reporta a contagem, média, desvio padrão, mínimo, máximo e percentis 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 fatiamento extrai um subconjunto de linhas ou colunas de um DataFrame. Você pode usar o nome da coluna para fatiar.tracem uma coluna, como mostra o 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 de colchetes duplos. [[..,..]]O primeiro par indica que você deseja selecionar colunas; o segundo par indica quais colunas 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 selecionar as linhas usando dois pontos. 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 |
O loc O acessador seleciona colunas por nome. Como de costume, o valor antes da vírgula representa as linhas e o valor depois dela, as colunas, sendo necessários 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. iloc[] Utiliza posições inteiras em vez de nomes de colunas, portanto o código abaixo retorna o mesmo DataFrame que o anterior.
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 remover colunas com df.drop(), passando os nomes no columns argumento.
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 DataFrames com pd.concat()Primeiro, crie os dois quadros.
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])
Em seguida, concatene-os.
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 |
Soltar duplicatas
Quando um conjunto de dados contém informações duplicadas, drop_duplicates() É uma maneira fácil de excluir as linhas repetidas. df_concat Contém uma observação duplicada: Smith aparece duas vezes no name coluna.
df_concat.drop_duplicates('name')
| Idade | nome | |
|---|---|---|
| 0 | 25 | banheiro |
| 1 | 30 | Smith |
| 2 | 50 | Paul |
| 3 | 26 | Adam |
Ordenar valores
Você pode classificar um quadro com sort_values(). Observe que Age O conteúdo foi criado como texto aqui, portanto as linhas são classificadas em ordem de string.
df_concat.sort_values('Age')
| Idade | nome | |
|---|---|---|
| 4 | 11 | Smith |
| 0 | 25 | banheiro |
| 3 | 26 | Adam |
| 1 | 30 | Smith |
| 2 | 50 | Paul |
Renomear Colunas
Uso rename() Para renomear uma coluna no Pandas, use o seguinte código: Em cada par, o primeiro valor é o nome atual da coluna e o segundo é o novo nome.
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 |
Guia de Referência Rápida de Métodos do Pandas
Esta tabela mapeia cada tarefa comum ao método Pandas que a executa.
| Tarefa | Forma |
|---|---|
| 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] |

