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条件复合筛选(多条件、与、或)相关推荐

  1. R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数

    R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数 目录

  2. pandas使用apply函数基于条件(if condition)生成新的数据列

    pandas使用apply函数基于条件(if condition)生成新的数据列 目录 pandas使用apply函数基于条件(if condition)生成新的数据列

  3. 【Python基础】pandas的骚操作:一行 pandas 代码搞定 Excel “条件格式”!

    来源:Python数据科学 作者:东哥起飞 本篇是pandas100个骚操作系列的第 7 篇:一行 pandas 代码搞定 Excel "条件格式"! 系列内容,请看????「pa ...

  4. filter函数的用法_动态数组函数系列5| 筛选函数FILTER,单条件多条件动态筛选

    FILTER函数是筛选函数,就是在源数据中按照我们的条件筛选出我们想要的数据.除了常规的数据筛选,还可以进行多条件的"且"或者"或"的筛选. 下面我们来看看这个 ...

  5. php多条件筛选顺序_php多条件组合筛选

    [实例简介] js搞定多条件组合筛选,实现URL动态变化,后台根据URL参数实现查询 [实例截图] [核心代码] filter └── filter ├── css │   ├── bootstrap ...

  6. 在集合中根据条件来筛选数据

    在集合中根据条件来筛选数据 from random import randintdata = [randint(-10,10) for _ in range(10)] print(data) s = ...

  7. 在字典中根据条件来筛选数据

    在字典中根据条件来筛选数据 from random import randint #生成一个字典 d = {x:randint(60,100) for x in range(1,11)} print( ...

  8. 在列表中根据条件来筛选数据

    在列表中根据条件来筛选数据 from random import randintdata = [randint(-10,10) for _ in range(10)] print(data) prin ...

  9. 在列表,字典,集合中根据条件来筛选数据

    在列表中根据条件来筛选数据 from random import randintdata = [randint(-10,10) for _ in range(10)] print(data) prin ...

最新文章

  1. 视频专辑:Photoshop基础视频教程
  2. 程序员关注的高质量公众号
  3. 语义分割--Deep Dual Learning for Semantic Image Segmentation
  4. 蓝牙核心-L2CAP
  5. 六、递归(Recursion)
  6. django 1.8 官方文档翻译: 2-4-4 编写迁移
  7. linux通过dd命令把分区,linux dd命令使用详解
  8. Cissp全过程(简介到考试后)
  9. java test20006_Java单例7种测试实践
  10. 游戏match(【CCF】NOI Online能力测试2 提高组第三题 )
  11. [C] 从文件读取数据
  12. 用Python一键批量将任意结构的CSV文件导入 SQLite_用 Python 使用 Google Colab?岂止是炫酷...
  13. STM32:Code、RO、RW、Zi含义
  14. linux的常用命令
  15. 如何在低代码开发平台上,实施表单设计流程
  16. 数字信号处理学习笔记[1] 离散信号 奇异信号 抽样定理
  17. 为什么程序员流动性大_为健康“流动”
  18. PCI8524 并行8Ch24Bits100Ksps高精度数据采集卡
  19. Vue乱搞系列之axios发起表单请求
  20. 两部委联合叫停“基因测序”体检

热门文章

  1. 一天一个蛋,刀斧靠边站
  2. Office Word等双击空白处的“隐藏的模块中的编译错误:MTW5”解决
  3. 人工智能在轨道交通领域的应用
  4. 人脸识别闸机助力线下展览与演出
  5. Python实现单位(亿、万)转数字
  6. centos升级glibc至2.18安装wps 2019
  7. 壹米滴答单号物流批量查询的方法
  8. 拼多多产品轮播图如何设计?
  9. 没网的情况下,如何ios和安卓终端之间传递文件
  10. ROS实现串口解析GPS协议,并发布到话题