削减熊猫时间序列的最快方法

问题描述 投票:-1回答:1

寻找缩短时间序列的最快方法...例如,仅获取比某个索引最近的值。

我发现了两种常用方法:

df = original_series.truncate(before=example_time)

df = original_series[example_time:]

哪个更快(对于较大的时间序列> 10 ** 6值)?

python pandas time-series
1个回答
0
投票

这通常取决于您的数据框索引是什么,将10 ^ 7个值的随机DataFrame放入timeit中,我们得到以下内容。

从截断的性能角度来看,效率更高,因为通过numpy为基于整数的索引优化了熊猫。

Truncate: 
62.6 ms ± 3.63 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

Bracket Indexing:
54.1 µs ± 4.41 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

ILoc:
69.5 µs ± 4.52 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

Loc:
92 µs ± 5.09 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

Ix (which is deprecated):
110 µs ± 8.44 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
© www.soinside.com 2019 - 2024. All rights reserved.