首页 > 解决方案 > 在给定条件下检索系列行

问题描述

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

   a   
a  0

b  10

c  12

d  21

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

例如,我想打印出与 15 单位距离内的所有变量a,不包括a,即bc

b

C

我尝试创建一个空列表,然后使用 for 循环附加到该列表但无济于事,所以我显然遗漏了一些东西。

标签: pythonpandasseries

解决方案


忘记循环,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'))]

推荐阅读