首页 > 解决方案 > 当我必须在长熊猫系列(> 15 M 个元素)中搜索时,如何优化“枚举”?

问题描述

我有一个包含时间信息(表示秒的浮点数)的熊猫系列,例如,我需要识别时间大于 x 的索引。我目前正在使用 enumerate 来执行此操作,但我不确定这是执行此操作的最佳方式,因为它需要一些时间来执行。我想知道是否有任何矢量化方式来执行此操作。

index = [i for i, val in enumerate(df['time']) if val >= x][0]

示例系列:

time

0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1

标签: pythonpython-3.xpandasseries

解决方案


df[df['time'] >= x].index

或者

np.nonzero(df['time'].values >= x)[0]


编辑:
如果您只需要第一次出现:

np.argmax(df['time'].values >= x)

推荐阅读