pandas 将字符串转换为多种格式的日期

nbnkbykc  于 2023-03-21  发布在  其他
关注(0)|答案(1)|浏览(224)

我在同一个文件中有以下格式的日期:

"%m/%d/%Y" --> YEAR with 4 digits
"%m/%d/%y" --> YEAR with 2 digits

我希望能够解析这两种格式。下面是我的尝试:

df[["field1", "field2"]] = pd.to_datetime(
    df[["field1", "field2"]], format="%m/%d/%Y", errors="coerce"
).fillna(pd.to_datetime(df[["field1", "field2"]], format="%m/%d/%y"))

但这并不奏效:

ValueError: to assemble mappings requires at least that [year, month, day] be specified: [day,month,year] is missing

如果我只尝试一个系列:

df["field1"] = pd.to_datetime(
    df["field1"], format="%m/%d/%Y", errors="coerce"
).fillna(pd.to_datetime(df["field1"], format="%m/%d/%y"))

我得到了ValueError,似乎没有测试这两种格式。

ValueError: unconverted data remains: 21

使用不同日期格式的最有效方法是什么?

ohfgkhjo

ohfgkhjo1#

IIUC,只需从www.example.com _datetime中删除format参数pd.to,并让继承格式处理从两位数年份到四位数年份的更改。

pd.to_datetime(pd.Series(['01/01/2023', '01/02/23', '12/24/2021', '11/23/21']))

输出:

0   2023-01-01
1   2023-01-02
2   2021-12-24
3   2021-11-23
dtype: datetime64[ns]

相关问题