Working with Dates — Pandas vs Polars

Published:
Last updated:
By Jeferson Peter
Polars & Pandas

Datasets almost always include timestamps. Handling them correctly is essential for analysis.
Both Pandas and Polars provide tools to parse and format dates, but their syntax differs.


Example data

import pandas as pd
import polars as pl

data = {"date": ["2025-01-01", "2025-02-15"]}
df_pd = pd.DataFrame(data)
df_pl = pl.DataFrame(data)

Converting to datetime

# Pandas
df_pd["date"] = pd.to_datetime(df_pd["date"])
print(df_pd)

#         date
# 0 2025-01-01
# 1 2025-02-15

# Polars
df_pl = df_pl.with_columns(pl.col("date").str.strptime(pl.Date, "%Y-%m-%d"))
print(df_pl)

# shape: (2, 1)
# ┌────────────┐
# │ date       │
# │ ---        │
# │ date       │
# ╞════════════╡
# │ 2025-01-01 │
# │ 2025-02-15 │
# └────────────┘

Extracting parts of the date

# Pandas
print(df_pd["date"].dt.month)

# 0    1
# 1    2
# Name: date, dtype: int32

# Polars
print(df_pl.with_columns(df_pl["date"].dt.month().alias("month")))

# shape: (2, 2)
# ┌────────────┬───────┐
# │ date       ┆ month │
# │ ---        ┆ ---   │
# │ date       ┆ u32   │
# ╞════════════╪═══════╡
# │ 2025-01-01 ┆ 1     │
# │ 2025-02-15 ┆ 2     │
# └────────────┴───────┘

Conclusion

  • Pandas: pd.to_datetime and .dt accessor for parts of the date.
  • Polars: .str.strptime() for parsing, .dt namespace for components.
  • Both are powerful — Polars emphasizes performance and explicit parsing.