gpt4 book ai didi

python-3.x - 如何 'exactly' 在一系列日期字符串上使用 .to_datetime?

转载 作者:行者123 更新时间:2023-12-03 10:01:44 26 4
gpt4 key购买 nike

我正在尝试将一系列日期字符串转换为日期。但我发现即使将“精确”参数设置为 True,当字符串中没有日期值时,.to_datetime 也会添加默认值 01。

PS:我用的是pandas 0.24.2

data = np.array(['2014-10','2015-06/07','20-14-08','2a115-09'])

ser = pd.Series(data)

pd.to_datetime(ser, errors='coerce', format='%Y-%m-%d', exact=True)

#Result:
0 2014-10-01
1 NaT
2 NaT
3 NaT
dtype: datetime64[ns]

#Expected
0 NaT
1 NaT
2 NaT
3 NaT
dtype: datetime64[ns]

最佳答案

您可以尝试使用 str.matchnp.where 有条件地检查日期格式是否存在:

注意我又添加了一个日期来展示正确的结果

data = np.array(['2014-10','2015-06/07','20-14-08','2a115-09', '2018-09-20'])

m = pd.Series(data).str.match('\d{4}-\d{2}-\d{2}')
data_new = pd.Series(np.where(m,
pd.to_datetime(data, format='%Y-%m-%d',errors='coerce'),
np.datetime64('NaT')))
0          NaT
1 NaT
2 NaT
3 NaT
4 2018-09-20
dtype: datetime64[ns]

关于python-3.x - 如何 'exactly' 在一系列日期字符串上使用 .to_datetime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56917211/

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