[英]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.