У меня есть фрейм данных Polars, содержащий столбец datetime
. Я хочу преобразовать этот столбец в строки формата %Y%m
. Например, все даты в январе 2024 года следует преобразовать в "202401"
.
from datetime import datetime
import polars as pl
data = {
"ID" : [1,2,3],
"dates" : [datetime(2024,1,2),datetime(2024,1,3),datetime(2024,1,4)],
}
df = pl.DataFrame(data)
Я пробовал использовать strftime
. Однако возникает следующее AttributeError
.
AttributeError: 'Expr' object has no attribute 'strftime'
вы можете использовать strftime
вот так:
df = df.with_columns(pl.col("dates").dt.strftime("%Y%m"))
print(df)
┌─────┬────────┐
│ ID ┆ dates │
│ --- ┆ --- │
│ i64 ┆ str │
╞═════╪════════╡
│ 1 ┆ 202401 │
│ 2 ┆ 202401 │
│ 3 ┆ 202401 │
└─────┴────────┘
Обратите внимание, что pl.Expr.dt.strftime доступен в пространстве имен pl.Expr.dt. Следовательно, он вызывается по атрибуту dt
выражения, а не по самому выражению.
df.with_columns(
pl.col("dates").dt.strftime("%Y%m")
)
shape: (3, 2)
┌─────┬────────┐
│ ID ┆ dates │
│ --- ┆ --- │
│ i64 ┆ str │
╞═════╪════════╡
│ 1 ┆ 202401 │
│ 2 ┆ 202401 │
│ 3 ┆ 202401 │
└─────┴────────┘