Python 在给定条件下检索序列行

Python 在给定条件下检索序列行,python,pandas,series,Python,Pandas,Series,考虑以下表示位置a和位置b,c,d之间距离的系列: a a 0 b 10 c 12 d 21 现在,我要做的是检索距离a一定距离内的所有位置名 例如,我想打印出距离a15个单位范围内的所有变量,不包括a,即b和c b c 我尝试创建一个空列表,然后使用for循环附加到该列表中,但没有效果,因此我显然遗漏了一些内容。可以这样做,我假设第一列是一个索引: print(df[(df['a'] < 15) & (df.index != 'a')])

考虑以下表示位置
a
和位置
b
c
d
之间距离的系列:

   a   
a  0

b  10

c  12

d  21
现在,我要做的是检索距离
a
一定距离内的所有位置名

例如,我想打印出距离
a
15个单位范围内的所有变量,不包括
a
,即
b
c

b

c


我尝试创建一个空列表,然后使用for循环附加到该列表中,但没有效果,因此我显然遗漏了一些内容。

可以这样做,我假设第一列是一个索引:

print(df[(df['a'] < 15) & (df.index != 'a')])

      a
loc
b    10
c    12
打印(df[(df['a']<15)和(df.index!='a'))
A.
loc
b 10
c 12

忘记循环,pandas和numpy已经有了内置的函数来完成这项工作。在这种情况下,可以使用np.where

import pandas as pd
import numpy as np
df = pd.Series({'a':0, 'b':10, 'c':12, 'd':21}, index=['a', 'b', 'c', 'd'])
df.iloc[np.where((df<=15) & (df.index !='a'))]
将熊猫作为pd导入
将numpy作为np导入
df=pd.Series({'a':0,'b':10,'c':12,'d':21},索引=['a','b','c','d']))
df.iloc[np.where((df试试这个:

dist = 15
val = list(df.loc[(df['a'] < dist) & (df.index != 'a')].index)
print(val)

绝对距离或有符号距离,如果有关系的话?这回答了你的问题吗?@timgeb谢谢你指出,我已经编辑了这篇文章。没有负值,所以这无关紧要。@ShubhamSharma这很有帮助,但并没有真正回答我的问题否。我已经设法检索了行,但我正在尝试打印行满足条件的名称。@grimrol123是序列还是数据帧?
['b', 'c']