Polars & Pandas
Sorting and Ranking — Pandas vs Polars
Sorting and ranking data is common in analysis. Let’s see how Pandas and Polars handle it with simple examples.
Published
Last updated
By
Jeferson Peter
1 min read
1 min
Imagine you have a dataset of students with their scores and want to order them or assign ranks.
Both Pandas and Polars make this straightforward, though with slightly different syntax.
Example data
import pandas as pd
import polars as pl
data = {"name": ["Alice", "Bob", "Charlie"], "score": [85, 92, 78]}
df_pd = pd.DataFrame(data)
df_pl = pl.DataFrame(data)
Sorting
# Pandas
print(df_pd.sort_values("score"))
# name score
# 2 Charlie 78
# 0 Alice 85
# 1 Bob 92
# Polars
print(df_pl.sort("score"))
# shape: (3, 2)
# ┌─────────┬───────┐
# │ name ┆ score │
# │ --- ┆ --- │
# │ str ┆ i64 │
# ╞═════════╪═══════╡
# │ Charlie ┆ 78 │
# │ Alice ┆ 85 │
# │ Bob ┆ 92 │
# └─────────┴───────┘
Ranking
# Pandas
df_pd["rank"] = df_pd["score"].rank(ascending=False)
print(df_pd)
# name score rank
# 0 Alice 85 2.0
# 1 Bob 92 1.0
# 2 Charlie 78 3.0
# Polars
df_pl = df_pl.with_columns(pl.col("score").rank("dense", descending=True).alias("rank"))
print(df_pl)
# shape: (3, 3)
# ┌─────────┬───────┬─────┐
# │ name ┆ score ┆ rank│
# │ --- ┆ --- ┆ --- │
# │ str ┆ i64 ┆ u32 │
# ╞═════════╪═══════╪═════╡
# │ Alice ┆ 85 ┆ 2 │
# │ Bob ┆ 92 ┆ 1 │
# │ Charlie ┆ 78 ┆ 3 │
# └─────────┴───────┘
Conclusion
- Sorting:
sort_values()in Pandas,.sort()in Polars. - Ranking:
rank()in Pandas,.rank()expression in Polars. - Both provide flexible tools for ordering and ranking data.