gpt4 book ai didi

python - 转换具有缺失值的日期字符串

转载 作者:太空宇宙 更新时间:2023-11-04 03:47:11 24 4
gpt4 key购买 nike

这可能会形成一个更一般的问题,但我遇到的问题是这样的:我想将一串日期转换为日期时间对象,但该字符串包含空日期。例如:

df = pd.DataFrame({'A': ['2000.02.25', ''], 'B': ['', '2003.05.26']})

我希望返回的数据框将空日期保留为 NaNNaT。为了速度,我不想使用 pd.to_datetime,它在其他方面工作得很好,但比 datetime.datetime 慢了一个数量级:

df['A'] = [datetime.datetime.strptime(x, '%Y.%m.%d') for x in df['A']]

但是,问题是如何处理空字符串。如果我包含一个 if len(x) > 0 条件,返回的列表将具有不同的长度。

最佳答案

df['A'] = [datetime.datetime.strptime(x, '%Y.%m.%d') if x else pd.NaT for x in df['A']]

结构 a if cond else b 可以在列表理解之外使用,它是 python 的三元运算符。

我也有点惊讶 df = df.astype(pd.datetime) 没有胜出,但我的猜测是它在每个空行上都遇到了异常。这种性能下降可能是有缺陷的。

关于python - 转换具有缺失值的日期字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23167281/

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