gpt4 book ai didi

python - 还有比 pandas fillna() 更快的方法吗?

转载 作者:行者123 更新时间:2023-12-01 00:33:55 27 4
gpt4 key购买 nike

Pandas fillna() 速度非常慢,尤其是在数据帧中有大量丢失数据的情况下。

还有比这更快的方法吗?

(我知道如果我简单地删除一些包含 NA 的行和/或列会有帮助)

最佳答案

我尝试测试:

np.random.seed(123)
N = 60000
df = pd.DataFrame(np.random.choice(['a', None], size=(N, 20), p=(.7, .3)))
<小时/>
In [333]: %timeit df.fillna('b')
93.5 ms ± 1.28 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

In [337]: %timeit df[df.isna()] = 'b'
122 ms ± 2.75 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

稍微改变了解决方案(但我觉得它有点hacky):

#pandas below
In [335]: %timeit df.values[df.isna()] = 'b'
56.7 ms ± 799 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

#pandas 0.24+
In [339]: %timeit df.to_numpy()[df.isna()] = 'b'
56.5 ms ± 951 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

关于python - 还有比 pandas fillna() 更快的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57954550/

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