python - 基于范围列表过滤数据框
问题描述
可能我的问题的标题是某种错误的。目前我有一个清单:
a = [11,12,13,14,15,16,17,18,19,20,21,22,25,26,27,28,29,30,31,37,38,39]
和一个数据框df:
colfrom colto
1 99
23 24
25 32
25 40
如何过滤我的数据框,它colfrom
在数组 a 内或比它小,而colto
在数组内或比它大?所以基本上这条规则会导致:
colfrom colto
1 99
25 32
25 40
唯一被踢出的行是第 2 行(或 python 第 1 行),因为 23 和 24 不在数组中(并且不低于 11 且不高于 39)。
解决方案
采用:
mask = ((df['colfrom'].isin(a)) | (df['colfrom']<min(a)) & (df['colto'].isin(a)) | (df['colto']>max(a)))
df[mask]
colfrom colto
0 1 99
2 25 32
3 25 40
推荐阅读
- python - 如何在 python 中处理单个 socket.io 客户端事件?
- javascript - 如何使用 typescrpt 在外部 js 文件中调用函数
- r - 具有指定格式参数的 R strptime 函数恢复为默认值
- python - 当它们位于不同的熊猫列中时,如何绘制小时和分钟?
- amazon-web-services - 如何将 Amazon ECS 添加到我已经创建的非默认 VPC?
- .net - 在 VB.NET 中读取 .csv 文件的单元格中的特定值
- python - 在 Python 中添加计算列以计算列的频率
- python - 如何在极坐标 matplotlib 图上绘制带有文本(即标签)的水平线?(Python)
- android - 实时数据库 Firebase 规则 - 拒绝权限
- outlook - Outlook 插件无法在 Office 2013 或 Office 2016 上运行