python - 如果列是间隔数据类型,则数据框过滤列
问题描述
我有一个数据框数组,其中包含一些列,其中之一是“时间”我想过滤时间在特定间隔内的行
为了简化问题,我制作了一个具有整数值和整数间隔的数据框
data=pd.DataFrame({'A':[1,2,3,4,5,6,7,8,9]})
interval=pd.Interval(1,4)
data[data['A'] in interval]
它显示: ValueError: Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
但预期的结果是 [2,3,4]
解决方案
between
pandas.Series.between
将返回一个可用于过滤数据帧的布尔掩码。
data[data.A.between(1, 4)]
A
0 1
1 2
2 3
3 4
query
pandas.DataFrame.query
也可以用来过滤
data.query('1 <= A <= 4')
A
0 1
1 2
2 3
3 4
isin
pandas.Series.isin
可以在特殊整数情况下使用range
. 类似于between
我们创建一个布尔掩码。
data[data.A.isin(range(1, 5))]
A
0 1
1 2
2 3
3 4
推荐阅读
- opencv - 无法使用 OpenCV 从相机确定文档边缘
- javascript - 表单提交被 Javascript 忽略,但被 Flask 拾取
- j - 参数用法:ti=.{.(*i.)}
- javascript - 使用 History-Back 功能时 Firefox 的行为变化
- python - python检查从某个日期开始的交替星期一
- python - 在python中将pdf的字符串表示形式转换为字节的某种方法
- bazel - 访问 genrule 中输入文件的哈希以传递给 Bazel 中的命令
- javascript - 具有多个参数的蒸汽
- php - 在 PHP 中读取大于 10Gb 的视频文件大小
- sql - 在包含许多行的 SQL 表中,如何快速确定查询是否可能返回超过 1000 行