Ordenação e Ranking — Pandas vs Polars

Publicado:
Atualizado:
PorJeferson Peter
1 min de leitura
Polars & Pandas
Compartilhe este post:

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.
Compartilhe este post:
Ordenação e Ranking — Pandas vs Polars | CodeCraftPython