我正在尝试将 DataFrame 中的
str
列转换为 YYYY-MM-DD
的日期格式。如何将不同的日期格式转换为YYYY-MM-DD
的一种格式?
s = pl.Series("date",["Sun Jul 8 00:34:60 2001", "12Mar2022", "12/Mar/2022"])
df = s.to_frame().with_columns(pl.col("date").str.to_date("%d%m%Y", strict=False))
shape: (3, 1)
┌──────┐
│ date │
│ --- │
│ date │
╞══════╡
│ null │
│ null │
│ null │
└──────┘
pl.coalesce
将每次格式化尝试“合并”为一个结果。
s = pl.Series("date",[
"Sun Jul 8 00:34:60 2001",
"12Mar2022",
"12/Mar/2022"
])
fmts = "%d/%b/%Y", "%d%b%Y", "%c"
pl.select(
pl.coalesce(
s.str.strptime(pl.Datetime, fmt=fmt, strict=False)
for fmt in fmts
)
)
shape: (3, 1)
┌─────────────────────┐
│ date │
│ --- │
│ datetime[μs] │
╞═════════════════════╡
│ 2001-07-08 00:35:00 │
│ 2022-03-12 00:00:00 │
│ 2022-03-12 00:00:00 │
└─────────────────────┘