Ordenando um Pandas DataFrame pelo Índice
Published on
Uma das características mais poderosas do Pandas é sua capacidade de lidar e manipular facilmente grandes quantidades de dados. Neste tutorial, discutiremos um dos métodos fundamentais do Pandas - o método sort_index()
. Com este método, podemos ordenar um Pandas DataFrame pelo seu índice, seja numérico ou baseado em caracteres. Ao final deste tutorial, você terá uma compreensão sólida de como usar o método sort_index()
para ordenar seus dados e melhorar suas habilidades de manipulação de dados.
Mas antes de mergulharmos no método sort_index()
, vamos falar brevemente sobre o que é um Pandas DataFrame.
Quer criar visualizações de dados rapidamente em Python?
PyGWalker é um projeto Python de código aberto que pode ajudar a acelerar o fluxo de análise e visualização de dados diretamente em ambientes baseados em notebooks Jupyter.
PyGWalker (opens in a new tab) transforma seu DataFrame Pandas (ou Polars DataFrame) em uma interface 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 dar uma ⭐️ no GitHub!
O que é um Pandas DataFrame?
Um Pandas DataFrame é uma tabela bidimensional que tem linhas e colunas rotuladas. É semelhante a uma planilha ou tabela SQL. Em um DataFrame, as linhas representam observações ou registros, enquanto as colunas representam variáveis ou recursos.
O Pandas é construído em cima do NumPy, o que significa que é incrivelmente rápido na manipulação de grandes conjuntos de dados. Ele também fornece métodos incorporados para limpeza de dados, manipulação de dados e visualização de dados.
Agora que temos uma compreensão básica de um Pandas DataFrame, vamos seguir para o método sort_index()
.
Ordenando Pandas DataFrame pelo Índice
O método sort_index()
é usado para ordenar um Pandas DataFrame pelo seu índice. O índice de um DataFrame é como o número da linha em uma planilha. Ele identifica cada linha no DataFrame.
Vamos dar uma olhada em um exemplo.
import pandas as pd
# criar um dicionário
dados = {'nome': ['João', 'Maria', 'Pedro', 'Ana', 'Carla'],
'idade': [24, 34, 21, 19, 26],
'cidade': ['Nova Iorque', 'Paris', 'Londres', 'Berlim', 'São Francisco']}
# criar um DataFrame
df = pd.DataFrame(dados, index=['b', 'a', 'd', 'c', 'e'])
# ordenar o DataFrame pelo índice
df = df.sort_index()
print(df)
Produção:
nome idade cidade
a Maria 34 Paris
b João 24 Nova Iorque
c Ana 19 Berlim
d Pedro 21 Londres
e Carla 26 São Francisco
No exemplo acima, criamos um dicionário dados com três chaves nome, idade e cidade. Em seguida, usamos este dicionário para criar um DataFrame df com o índice especificado.
Depois de criar o DataFrame, usamos o método sort_index() para ordenar o DataFrame pelo índice. Como você pode ver, o método sort_index() ordena o DataFrame pelo índice em ordem crescente.
Se quisermos ordenar o índice em ordem decrescente, podemos usar o método sort_index(ascending=False).
# ordenar o DataFrame pelo índice em ordem decrescente
df = df.sort_index(ascending=False)
print(df)
Produção:
nome idade cidade
e Carla 26 São Francisco
d Pedro 21 Londres
c Ana 19 Berlim
b João 24 Nova Iorque
a Maria 34 Paris
Como você pode ver, o método sort_index(ascending=False) ordena o DataFrame em ordem decrescente.
Ordenando uma série Pandas pelo índice
Uma série Pandas é um array rotulado unidimensional semelhante a uma coluna em uma planilha. Como um DataFrame, uma série também tem um índice.
Para ordenar uma série Pandas pelo seu índice, também podemos usar o método sort_index().
import pandas as pd
# criar uma série Pandas
s = pd.Series([1, 3, 5, 7], index=['b', 'a', 'd', 'c'])
# ordenar a série pelo índice
s = s.sort_index()
print(s)
Produção:
a 3
b 1
c 7
d 5
dtype: int64
No exemplo acima, criamos uma série Pandas s com quatro valores e um índice especificado.
Depois de criar a série, usamos o método sort_index() para ordenar a série pelo índice. Como você pode ver, o método sort_index() ordena a série pelo índice em ordem crescente.
Se quisermos ordenar o índice em ordem decrescente, podemos usar o método sort_index(ascending=False).
# ordenar a série pelo índice em ordem decrescente
s = s.sort_index(ascending=False)
print(s)
Produção:
d 5
c 7
b 1
a 3
dtype: int64
Como você pode ver, o método sort_index(ascending=False) ordena a série em ordem decrescente.
'age': [24, 34, 21, 19, 26],
'city': ['Nova Iorque', 'Paris', 'Londres', 'Berlim', 'São Francisco']}
# crie um DataFrame
df = pd.DataFrame(data, index=['b', 'a', 'd', 'c', 'e'])
# selecione uma Series do DataFrame
s = df['name']
# classifique a Series pelo seu índice
s = s.sort_index()
print(s)
Saída:
a Mark
b John
c Anna
d Sara
e Paul
Name: name, dtype: object
No código acima, primeiro criamos um DataFrame df
com um índice específico. A variável s
seleciona a coluna name
do DataFrame como uma Series. Podemos então classificar a Series pelo seu índice usando o método sort_index()
.
Conclusão
Neste tutorial, aprendemos como usar o método sort_index()
para classificar um DataFrame ou Series do Pandas pelo seu índice. Este é um método poderoso que pode nos ajudar a limpar e manipular conjuntos de dados grandes com facilidade. Esperamos que tenha achado este tutorial útil e informativo.