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
Share this post:

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.
Share this post: