python - 当我必须在长熊猫系列(> 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
解决方案
df[df['time'] >= x].index
或者
np.nonzero(df['time'].values >= x)[0]
编辑:
如果您只需要第一次出现:
np.argmax(df['time'].values >= x)
推荐阅读
- apache-flink - Flink如何发现每个键的所有kafka分区
- xml - 某些版本的 word 中不显示参考书目样式
- r - 在数据帧的子集上运行聚类函数并为数据帧中的每个子集写入结果
- python - 计算匹配组的描述
- java - 如何在 Play 框架中使用 Google Firebase 管理员?
- android - 如何获取 FCM v1 的 Oauth 访问令牌?没有服务器
- kotlin - 从 stream() 操作到控制台的非确定性输出
- html - 为垂直居中的引导程序 4 卡添加空间
- java - 如何修复空指针异常 Firebase Auth
- java - mongodb中的更新操作