繁体   English   中英

如何获取过滤后的 Panda 系列的索引?

[英]How can I get the indexes of a filtered Panda series?

我正在处理 13548 个连续值,我的数据按以下方式构建:

s = pd.Series(delta, index=st)
s[:10]

GEOM_190_190 0.00
GEOM_190_192 1.91
GEOM_190_194 2.54
GEOM_190_196 4.90
GEOM_190_198 6.03
GEOM_190_200 6.92
GEOM_190_202 8.60
GEOM_190_204 10.06
GEOM_190_206 11.34
GEOM_190_208 12.43
数据类型:float64

我应用以下过滤器:
extra = [i for i in s if i<52.55]
extra2 = [i for i in s if i>61 and i<68]
extra3 = [i for i in s if i>73]

我想知道这些值的索引。 有没有更好的方法来做到这一点?

谢谢!

您可以使用loc访问一组行并返回另一个系列,然后您可以使用它来检查索引。

import pandas as pd

test = pd.Series({
    1: 5.0,
    2: 4.5,
    3: 8.2,
    4: 9.0,
    5: 6.7
})

extra = test.loc[lambda x: x < 8]
# or extra = test[test < 8] # more concise but potentially slower

print(extra)
# 1    5.0
# 2    4.5
# 5    6.7
# dtype: float64

有几个方法可以做到这一点,如描述的性能可以不同在这里

编辑:要在一个loc执行多个条件,请尝试以下操作:

test.loc[(test > 5) & (test < 8)]
# 5    6.7
# dtype: float64 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM