gpt4 book ai didi

python - Pandas 设置列子集慢

转载 作者:太空宇宙 更新时间:2023-11-03 16:28:03 25 4
gpt4 key购买 nike

我必须在 pandas 中转换一个大 DataFrame 的列子集......它非常慢。所以我做了一些测试,发现类型转换本身完成得非常快。但是,当将新转换的值归因于旧的 DataFrame 时,Pandas 似乎很慢。

然后我想出了另一个解决方案,执行联接并避免归因于运行速度相当快的列子集。

为什么 pandas 这么慢?这可能是一个错误吗?谁能重现结果?

slow pandas

编辑:

更多测试和用于生成 DataFrame 的代码。

slow pandas 2

最佳答案

仅添加了一个关于此的文档注释 - 请参阅 here .

基本上你不想在转换时使用loc - 相反:

df[f] = df[f].astype(float)

此外,仅供引用,copy=False 在这里不会造成任何伤害,但它也没有任何好处 - 从整数到 float ,您将不得不分配一个新的数组。

编辑 - 这比我想象的要慢。这是一个解决方法:

In [61]: df = pd.DataFrame(np.random.randint(0,1000, size=(10000, 1026)))

In [62]: f = list(range(1024))

In [63]: def cast(s):
...: if s.name in f:
...: return s.astype(float)
...: else:
...: return s

In [64]: %timeit df.apply(cast)
1 loop, best of 3: 389 ms per loop

关于python - Pandas 设置列子集慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37845884/

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