python - 在给定条件下检索系列行
问题描述
a
考虑以下代表位置和位置b
, c
,之间的距离的系列d
:
a
a 0
b 10
c 12
d 21
现在,我想要做的是检索在一定距离内的所有位置名称a
。
例如,我想打印出与 15 单位距离内的所有变量a
,不包括a
,即b
和c
。
b
C
我尝试创建一个空列表,然后使用 for 循环附加到该列表但无济于事,所以我显然遗漏了一些东西。
解决方案
忘记循环,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'))]
推荐阅读
- python-3.x - 如何使用dict在groupby之后选择第n个项目
- java - 为什么编译器对 getter 方法说“找不到符号”?
- python - 使用while循环对给定范围内的列表值求和
- c# - 使用 TVP 的批量更新适用于 SSMS,但不适用于 C#
- c++ - 在多个 cpp 文件中包含带有定义的 h 文件
- java - getBundle() 时出现 java.util.MissingResourceException
- swift - 为什么 DatePicker 在 Date 变为 nil 时会崩溃?
- c++ - C++ 未初始化的结构成员 - 字段不存在
- c# - 是否可以使用标记将任何对象作为参数传递给 LinkButton.CommandArgument?
- java - 是否可以使用 Java 8 API 更改所有 Guava API?