Ich möchte diese Spalte in den Typ polars.datetime konvertieren, der sich vom Python-Standard datetime unterscheidet.
Code: Select all
import polars as pl
from datetime import datetime
df = pl.DataFrame({
"id": [1, 2],
"event_date": ["27 July 2020", "31 December 2020"]
})
df = df.with_columns(
pl.col("event_date").map_elements(lambda x: x.replace(" ", "-"))
.map_elements(lambda x: datetime.strptime(x, "%d-%B-%Y"))
)
Code: Select all
shape: (2, 2)
┌─────┬─────────────────────┐
│ id ┆ event_date │
│ --- ┆ --- │
│ i64 ┆ datetime[μs] │
╞═════╪═════════════════════╡
│ 1 ┆ 2020-07-27 00:00:00 │
│ 2 ┆ 2020-12-31 00:00:00 │
└─────┴─────────────────────┘
Code: Select all
df.with_columns(
pl.col("event_date").map_elements(lambda x: x.month)
.map_elements(lambda x: 1 if x in range(1,4) else 2 if x in range(4,7) else 3 if x in range(7,10) else 4)
.alias("quarter")
)
Code: Select all
shape: (2, 3)
┌─────┬─────────────────────┬─────────┐
│ id ┆ event_date ┆ quarter │
│ --- ┆ --- ┆ --- │
│ i64 ┆ datetime[μs] ┆ i64 │
╞═════╪═════════════════════╪═════════╡
│ 1 ┆ 2020-07-27 00:00:00 ┆ 3 │
│ 2 ┆ 2020-12-31 00:00:00 ┆ 4 │
└─────┴─────────────────────┴─────────┘
Mobile version