如何根据 Python Pandas 中定义的条件将字符串转换为定义格式的日期?
How to convert string to date in defined format based on defined conditions in Python Pandas?
我在 Python Pandas 中有数据框,如下所示:
col1
------
20002211
19980515
- 前四个值是年份
- 接下来两个值是月份
- 接下来的两个值是天
如果有关月份的值不在 1-12 范围内,我需要将“col1”中的值替换为 19000102,因为我们有 12 个月:)
然后我需要将这个字符串转换为日期,因此我需要如下:
col1
--------
1900-01-02
1998-05-15
因为第一行是:20002211,月份值为 22,而我们的日历中只有 12 个月。
第二行是正确的
使用 pd.to_dateime
和 errors='coerce'
作为参数。
If ‘coerce’, then invalid parsing will be set as NaT.
>>> pd.to_datetime(df['col'], format='%Y%m%d', errors='coerce') \
.fillna('1900-01-02')
0 1900-01-02
1 1998-05-15
Name: col, dtype: datetime64[ns]
我在 Python Pandas 中有数据框,如下所示:
col1
------
20002211
19980515
- 前四个值是年份
- 接下来两个值是月份
- 接下来的两个值是天
如果有关月份的值不在 1-12 范围内,我需要将“col1”中的值替换为 19000102,因为我们有 12 个月:)
然后我需要将这个字符串转换为日期,因此我需要如下:
col1
--------
1900-01-02
1998-05-15
因为第一行是:20002211,月份值为 22,而我们的日历中只有 12 个月。 第二行是正确的
使用 pd.to_dateime
和 errors='coerce'
作为参数。
If ‘coerce’, then invalid parsing will be set as NaT.
>>> pd.to_datetime(df['col'], format='%Y%m%d', errors='coerce') \
.fillna('1900-01-02')
0 1900-01-02
1 1998-05-15
Name: col, dtype: datetime64[ns]