gpt4 book ai didi

python - 为什么在设置索引更快时使用 reset_index(drop=True)?

转载 作者:太空宇宙 更新时间:2023-11-04 09:44:49 25 4
gpt4 key购买 nike

当替代方案更快时,为什么我要使用 reset_index(drop=True)?我确定我缺少某些东西。 (或者我的时机不太好......)

import pandas as pd

l = pd.Series(range(int(1e7)))

%timeit l.reset_index(drop=True)
# 35.9 ms +- 1.29 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)

%timeit l.index = range(int(1e7))
# 13 us +- 455 ns per loop (mean +- std. dev. of 7 runs, 100000 loops each)

最佳答案

重置索引的代价高昂的操作不是创建新索引(正如您所展示的那样,速度非常快),而是返回系列的副本。如果你比较:

%timeit l.reset_index(drop=True)
22.6 ms ± 172 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

%timeit l.index = range(int(1e7))
14.7 µs ± 348 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

%timeit l.reset_index(inplace=True, drop=True)
13.7 µs ± 121 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

您可以看到就地操作(不返回副本)或多或少与您的方法一样快。然而它是generally discouraged执行就地操作。

关于python - 为什么在设置索引更快时使用 reset_index(drop=True)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50249979/

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