Ordenação e Ranking — Pandas vs Polars
Publicado:
Atualizado:
PorJeferson Peter
1 min de leituraPolars & Pandas
Imagine que você tem um conjunto de dados de alunos com suas notas e quer ordená-los ou atribuir rankings.
Tanto Pandas quanto Polars tornam isso simples, embora com sintaxes um pouco diferentes.
Dados de exemplo
import pandas as pd
import polars as pl
dados = {"nome": ["Alice", "Bob", "Carlos"], "nota": [85, 92, 78]}
df_pd = pd.DataFrame(dados)
df_pl = pl.DataFrame(dados)
Ordenando
# Pandas
print(df_pd.sort_values("nota"))
# nome nota
# 2 Carlos 78
# 0 Alice 85
# 1 Bob 92
# Polars
print(df_pl.sort("nota"))
# shape: (3, 2)
# ┌────────┬───────┐
# │ nome ┆ nota │
# │ --- ┆ --- │
# │ str ┆ i64 │
# ╞════════╪═══════╡
# │ Carlos ┆ 78 │
# │ Alice ┆ 85 │
# │ Bob ┆ 92 │
# └────────┴───────┘
Ranking
# Pandas
df_pd["ranking"] = df_pd["nota"].rank(ascending=False)
print(df_pd)
# nome nota ranking
# 0 Alice 85 2.0
# 1 Bob 92 1.0
# 2 Carlos 78 3.0
# Polars
df_pl = df_pl.with_columns(pl.col("nota").rank("dense", descending=True).alias("ranking"))
print(df_pl)
# shape: (3, 3)
# ┌────────┬───────┬────────┐
# │ nome ┆ nota ┆ ranking│
# │ --- ┆ --- ┆ --- │
# │ str ┆ i64 ┆ u32 │
# ╞════════╪═══════╪════════╡
# │ Alice ┆ 85 ┆ 2 │
# │ Bob ┆ 92 ┆ 1 │
# │ Carlos ┆ 78 ┆ 3 │
# └────────┴───────┴────────┘
Conclusão
- Ordenação:
sort_values()no Pandas,.sort()no Polars. - Ranking:
rank()no Pandas,.rank()no Polars. - Ambos fornecem ferramentas flexíveis para ordenar e ranquear dados.