pandas条件复合筛选(多条件、与、或)
pandas条件复合筛选(多条件、与、或)
数据分析工作中,Python第三方包pandas功能非常强大,其组合筛选功能比excel速度快很多。这里记录一下pandas的组合筛选功能。
或筛选
或筛选使用的符号是"|"
举个例子:
import faker
import pandas as pd# 生成假数据
fake = faker.Faker(locale='zh_CN')
names = []
address = []
# province = []
city = []
job = []
for i in range(10000):names.append(fake.name())address.append(fake.address())# province.append(fake.province())city.append(fake.city())job.append(fake.job())
data = [[names[i], city[i], job[i]] for i in range(10000)]
data = pd.DataFrame(data, columns=["姓名", "城市", "职业"])# 或筛选实例
select_or = data[(data["城市"] == "北京市") | (data["城市"] == "上海市")]
这样可以筛选出北京和上海的人员信息,前五行如下:
姓名 城市 职业
9 廖杨 上海市 活动执行
79 高楠 上海市 其他语种翻译
243 封桂香 上海市 财务助理/文员
329 杨刚 北京市 标准化工程师
473 黄军 北京市 电信交换工程师
上面这种情况适用于条件比较少的筛选,条件和条件之间需要使用括号,因为"|“优先级高于”=="
如果条件比较多,比如需要选择100个城市,该怎么选,可以参考下面的方法:
select_city = ["上海市", "天津市", "北京市", "重庆市"]
df = pd.DataFrame(columns=data.columns)
for i in select_city:df = df.append(data[data["城市"] == i])
把条件放入列表中(select_city),然后循环生成新的dataframe,依次append即可
与筛选
与筛选用到的情况比或筛选多,使用"&"符号
举个例子:
select_and = data[(data["城市"] == "北京市") & (data["职业"] == "科研")]
print(select_and)"""姓名 城市 职业
608 李平 北京市 科研
"""
更多条件的与筛选后面再记录吧
pandas条件复合筛选(多条件、与、或)相关推荐
- R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数
R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数 目录
- pandas使用apply函数基于条件(if condition)生成新的数据列
pandas使用apply函数基于条件(if condition)生成新的数据列 目录 pandas使用apply函数基于条件(if condition)生成新的数据列
- 【Python基础】pandas的骚操作:一行 pandas 代码搞定 Excel “条件格式”!
来源:Python数据科学 作者:东哥起飞 本篇是pandas100个骚操作系列的第 7 篇:一行 pandas 代码搞定 Excel "条件格式"! 系列内容,请看????「pa ...
- filter函数的用法_动态数组函数系列5| 筛选函数FILTER,单条件多条件动态筛选
FILTER函数是筛选函数,就是在源数据中按照我们的条件筛选出我们想要的数据.除了常规的数据筛选,还可以进行多条件的"且"或者"或"的筛选. 下面我们来看看这个 ...
- php多条件筛选顺序_php多条件组合筛选
[实例简介] js搞定多条件组合筛选,实现URL动态变化,后台根据URL参数实现查询 [实例截图] [核心代码] filter └── filter ├── css │ ├── bootstrap ...
- 在集合中根据条件来筛选数据
在集合中根据条件来筛选数据 from random import randintdata = [randint(-10,10) for _ in range(10)] print(data) s = ...
- 在字典中根据条件来筛选数据
在字典中根据条件来筛选数据 from random import randint #生成一个字典 d = {x:randint(60,100) for x in range(1,11)} print( ...
- 在列表中根据条件来筛选数据
在列表中根据条件来筛选数据 from random import randintdata = [randint(-10,10) for _ in range(10)] print(data) prin ...
- 在列表,字典,集合中根据条件来筛选数据
在列表中根据条件来筛选数据 from random import randintdata = [randint(-10,10) for _ in range(10)] print(data) prin ...
最新文章
- 视频专辑:Photoshop基础视频教程
- 程序员关注的高质量公众号
- 语义分割--Deep Dual Learning for Semantic Image Segmentation
- 蓝牙核心-L2CAP
- 六、递归(Recursion)
- django 1.8 官方文档翻译: 2-4-4 编写迁移
- linux通过dd命令把分区,linux dd命令使用详解
- Cissp全过程(简介到考试后)
- java test20006_Java单例7种测试实践
- 游戏match(【CCF】NOI Online能力测试2 提高组第三题 )
- [C] 从文件读取数据
- 用Python一键批量将任意结构的CSV文件导入 SQLite_用 Python 使用 Google Colab?岂止是炫酷...
- STM32:Code、RO、RW、Zi含义
- linux的常用命令
- 如何在低代码开发平台上,实施表单设计流程
- 数字信号处理学习笔记[1] 离散信号 奇异信号 抽样定理
- 为什么程序员流动性大_为健康“流动”
- PCI8524 并行8Ch24Bits100Ksps高精度数据采集卡
- Vue乱搞系列之axios发起表单请求
- 两部委联合叫停“基因测序”体检