gpt4 book ai didi

python - pandas to_datetime 将非零填充的月份和日期转换为日期时间

转载 作者:行者123 更新时间:2023-12-01 07:40:37 29 4
gpt4 key购买 nike

我正在使用 pd.to_datetime 将字符串转换为 datetime

df = pd.DataFrame(data={'id':['DD-83']})
pd.to_datetime(df['id'].str.replace(r'\D+', ''), errors='coerce', format='%d%m')

%d%m 定义了用零填充的日期和月份,但代码仍然将上面的字符串转换为

0   1900-03-08
Name: id, dtype: datetime64[ns]

我想知道如果字符串中的月份和日期不是用 0 填充的,如何避免将其转换为日期时间(例如,在本例中转换为 NaT)。所以

 DD0306 
DD0706
DD-83

将转换为

 1900-06-03
1900-06-07
NaT

最佳答案

您需要查找 - 并且仅传递不带 - 的字符串。

设置:

df = pd.DataFrame(data={'id':['DD-83', 'DD0706', 'DD0306']})

代码:

df['date'] = pd.to_datetime(df['id'].loc[~df['id'].str.contains('-')].str.replace(r'\D+', ''), errors='coerce', format='%d%m')

输出:

       id   date
0 DD-83 NaT
1 DD0706 1900-06-07
2 DD0306 1900-06-03

关于python - pandas to_datetime 将非零填充的月份和日期转换为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56739472/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com