Sam*_*boo 2 python date-format date-conversion python-polars
我正在尝试将utf-8DataFrame 中的列转换为YYYY-MM-DD. 如何将不同的日期格式转换为一种格式YYYY-MM-DD?
s = pl.Series("date",\\["Sun Jul 8 00:34:60 2001", "12Mar2022", "12/Mar/2022"\\])\n\ndf=s.to_frame().with_columns(pl.col("date").str.strptime(pl.Date,fmt=('%d%m%Y' ), strict=False)) \n\nprint(df)\n\n\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\n\xe2\x94\x82 date \xe2\x94\x82\n\n\xe2\x94\x82 --- \xe2\x94\x82\n\n\xe2\x94\x82 date \xe2\x94\x82\n\n\xe2\x95\x9e\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa1\n\n\xe2\x94\x82 null \xe2\x94\x82\n\n\xe2\x94\x82 null \xe2\x94\x82\n\n\xe2\x94\x82 null \xe2\x94\x82\n\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x98\nRun Code Online (Sandbox Code Playgroud)\n
您可以使用pl.coalesce将每个格式化尝试“合并”为一个结果。
s = pl.Series("date",[\n "Sun Jul 8 00:34:60 2001", \n "12Mar2022", \n "12/Mar/2022"\n])\n\nfmts = "%d/%b/%Y", "%d%b%Y", "%c"\n\npl.select(\n pl.coalesce(\n s.str.strptime(pl.Datetime, fmt=fmt, strict=False)\n for fmt in fmts\n )\n)\nRun Code Online (Sandbox Code Playgroud)\nshape: (3, 1)\n\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82 date \xe2\x94\x82\n\xe2\x94\x82 --- \xe2\x94\x82\n\xe2\x94\x82 datetime[\xce\xbcs] \xe2\x94\x82\n\xe2\x95\x9e\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa1\n\xe2\x94\x82 2001-07-08 00:35:00 \xe2\x94\x82\n\xe2\x94\x82 2022-03-12 00:00:00 \xe2\x94\x82\n\xe2\x94\x82 2022-03-12 00:00:00 \xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x98\nRun Code Online (Sandbox Code Playgroud)\n