Adicionando linhas a um DataFrame do Pandas: um guia passo a passo
Published on
Em projetos de análise de dados e machine learning, você frequentemente precisa adicionar novas observações a um DataFrame do Pandas. Se você está lidando com dados de pesquisa, leituras de sensores ou registros de comportamento do usuário, deve ser capaz de anexar novas linhas a um DataFrame existente de forma eficiente. O Pandas, uma biblioteca popular de manipulação de dados em Python, oferece vários métodos para adicionar linhas a um DataFrame. Neste tutorial, exploraremos três deles: .loc
, .append
e .concat
. Vamos mergulhar.
Quer criar rapidamente visualizações de dados em Python?
O PyGWalker é um projeto de código aberto em Python que pode ajudar a acelerar o fluxo de trabalho de análise e visualização de dados diretamente em ambientes baseados em Jupyter Notebook.
PyGWalker (opens in a new tab) transforma seu DataFrame do Pandas (ou Polars) em uma UI visual onde você pode arrastar e soltar variáveis para criar gráficos com facilidade. Basta usar o seguinte código:
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)
Você pode executar o PyGWalker agora mesmo com esses notebooks online:
E não se esqueça de nos dar uma ⭐️ no GitHub!
Adicionando uma linha usando o método .loc
O método .loc
no Pandas permite selecionar um subconjunto de um DataFrame com base em seus rótulos. Você também pode usá-lo para adicionar uma nova linha ao DataFrame. Veja como:
import pandas as pd
# criando um dataframe de amostra
df = pd.DataFrame({
'Nome': ['John', 'Sara', 'Tim'],
'Idade': [25, 34, 41],
'Cidade': ['Nova York', 'Londres', 'Paris']
})
# adicionando uma nova linha usando .loc
df.loc[3] = ['Anna', 29, 'Berlim']
print(df)
No código acima, primeiro criamos um DataFrame df
com três linhas e três colunas. Em seguida, usamos o método .loc
e especificamos um índice de linha de 3. Finalmente, fornecemos uma lista de valores para a nova linha.
Saída:
Nome Idade Cidade
0 John 25 Nova York
1 Sara 34 Londres
2 Tim 41 Paris
3 Anna 29 Berlim
Observe que o índice da nova linha é 3, o que significa que ela será adicionada após a última linha do DataFrame. Você também pode usar .loc
para inserir uma linha em uma localização específica, especificando o rótulo da linha. Por exemplo, para inserir uma nova linha após a segunda linha do DataFrame, você pode fazer:
# inserindo uma nova linha após a segunda linha
df.loc[2.5] = ['Peter', 37, 'Los Angeles']
print(df)
Saída:
Nome Idade Cidade
0 John 25 Nova York
1 Sara 34 Londres
2 Tim 41 Paris
2.5 Peter 37 Los Angeles
3 Anna 29 Berlim
Aqui, inserimos a nova linha após o rótulo 2
usando um rótulo de 2.5
. O Pandas reordena automaticamente os rótulos de linha para mantê-los em ordem crescente.
Adicionando uma linha usando o método .append
O método .append
no Pandas permite combinar dois DataFrames verticalmente. Você pode usá-lo para adicionar uma nova linha a um DataFrame passando a um DataFrame com uma única linha para o método .append
. Aqui está um exemplo:
# criando uma nova linha como dataframe
nova_linha = pd.DataFrame({
'Nome': ['Julia'],
'Idade': [31],
'Cidade': ['Tóquio']
})
# usando .append para adicionar a nova linha
df = df.append(nova_linha, ignore_index=True)
print(df)
Saída:
Nome Idade Cidade
0 John 25 Nova York
1 Sara 34 Londres
2 Tim 41 Paris
3 Anna 29 Berlim
4 Julia 31 Tóquio
No código acima, primeiro criamos um novo DataFrame `new_row` com uma única linha de dados. Em seguida, usamos o método `.append` e passamos `new_row` como argumento. O parâmetro `ignore_index=True` informa ao Pandas para reindexar o DataFrame de 0 a 4.
## Adicionando várias linhas usando o método .concat
O método `.concat` no Pandas permite concatenar dois DataFrames ao longo de um eixo especificado. Você pode usá-lo para adicionar várias linhas a um DataFrame passando uma lista de DataFrames para o método `.concat`. Veja como você pode adicionar duas novas linhas ao DataFrame `df` usando o `.concat`.
```python
# criando duas novas linhas como dataframes
novas_linhas = [pd.DataFrame({
'Nome': ['Maria', 'Adam'],
'Idade': [27, 45],
'Cidade': ['Sydney', 'Toronto']}),
]
# usando .concat para adicionar as novas linhas
df = pd.concat([df] + novas_linhas, ignore_index=True)
print(df)
Output:
Nome Idade Cidade
0 John 25 Nova Iorque
1 Sara 34 Londres
2 Tim 41 Paris
3 Anna 29 Berlim
4 Maria 27 Sydney
5 Adam 45 Toronto
No código acima, primeiro criamos dois novos DataFrames novas_linhas
. Em seguida, os passamos como lista para o método .concat
junto com o df
. O parâmetro ignore_index=True
reordena o índice de 0 a 5.
Conclusão
Neste tutorial, exploramos três métodos diferentes para adicionar novas linhas a um DataFrame do Pandas em Python: .loc
, .append
e .concat
. Cada método tem suas vantagens e desvantagens, dependendo da situação. O método .loc
é útil quando você quer adicionar uma única linha em uma localização específica. O método .append
é uma maneira simples de adicionar uma única linha ao final de um DataFrame. O método .concat
é ideal quando você deseja adicionar várias linhas ao mesmo tempo. Conhecer esses métodos ajudará você a manipular DataFrames de forma eficiente e eficaz em seus projetos de análise de dados e machine learning. Boa codificação!