Pandas 筛选和删除目标值所在的行的实现
作者:山茶花开时。 发布时间:2021-11-16 03:11:31
标签:Pandas,筛选,删除,行
1.筛选出目标值所在行
单列筛选
# df[列名].isin([目标值])对当前列中存在目标值的行会返回True,不存在的返回False
df[df[列名].isin([目标值])]
练习案例
import pandas as pd
df_bom_data = pd.DataFrame([['A123',1200,5],
['B456',550,2],
['C437',500,10],
['D112',621,7],
['E211',755,11],
['F985',833,8]
],columns=['Material','Price','Quantity'])
df_material_shortage_data = pd.DataFrame([['A123','2022/6/21',100],
['B456','2022/6/22',120],
['C437','2022/6/23',250]
],columns=['Material','Schedule','LT'])
# 筛选出df_bom_data表中只包含df_material_shortage_data表中Material的行记录
df_bom_data = df_bom_data[df_bom_data['Material'].isin(df_material_shortage_data['Material'])]
df_bom_data
df_material_shortage_data
df_bom_data(处理后)
多列筛选
# 同时满足用&连接,或的话用 | 连接
df[df[列名].isin([目标值]) & df[列名].isin([目标值])]
df[df[列名].isin([目标值]) | df[列名].isin([目标值])]
练习案例
import pandas as pd
df = pd.DataFrame([['L123','A',0],
['L456','A',1],
['L437','C',0],
['L112','B',1],
['L211','A',0],
['L985','B',1]
],columns=['Material','Level','Passing'])
# 筛选出指定列都有目标值的行
res1 = df[df['Level'].isin(['A','C']) & df['Passing'].isin([0])]
# 筛选出至少有一列有目标值的行
res2 = df[df['Level'].isin(['A','C']) | df['Passing'].isin([0])]
df
res1
res2
2.删除目标值所在的行
练习案例
import pandas as pd
import numpy as np
df_bom_data = pd.DataFrame([['A123',1200,5],
['B456',np.nan,np.nan],
['C437',500,10]
],columns=['Material','Price','Quantity'])
df_material_shortage_data = pd.DataFrame([['A123','2022/6/21',100],
['B456','2022/6/22',120],
['C437','2022/6/23',250]
],columns=['Material','Schedule','LT'])
# 筛选出df_bom_data中'Price'和'Quantity'两列字段的值都为空(nans)的行
df_isnull_bom_data = df_bom_data[pd.isnull(df_bom_data[df_bom_data.columns.tolist()[1:]]).all(axis=1)]
# df_material_shortage_data表删除all_isnull_df_bom_data表中的Material
df_material_shortage_data = df_material_shortage_data[~df_material_shortage_data['Material'].isin(df_isnull_bom_data['Material'])]
df_bom_data
df_material_shortage_data
df_isnull_bom_data
df_material_shortage_data(处理后)
扩展补充案例:删除列为指定值所在的行
import pandas as pd
df = pd.DataFrame([[0,1,2,3],
[4,5,6,7],
[8,9,10,11]
],columns=['A','B','C','D'])
# 通过重新取值,数据筛选后重新赋值,达到删除列为指定值的行数据
# 删除A列中值为0的那一行记录
df = df[df['A'] != 0]
df
df(处理后)
来源:https://blog.csdn.net/Hudas/article/details/125394010


猜你喜欢
- 我们在选择一件商品的时候,会先了解一些相关的商品信息,根据自己的需求和情况再进行选择。这种现象也同样适用于找工作,筛选一个岗位的重要环节,就
- 1. 将数据库生成使用对象资源管理器能快速创建整个数据的脚本,也能使用默认选项创建单个数据库对象的脚本;用户能在查询编辑器窗口中对文件或剪贴
- 1.创建数据库表--使用哪个数据库,如果不写这一句是默认的数据库,也可以用鼠标选当前数据库use testDB--创建表 Cre
- 图例如下https://github.com/Dongvdong/python_Smartvoice上电后,只要周围声音超过 2000,开始
- 我们都知道float:left和float:right,但是否想过float:center呢?居中浮动。。。<div id="
- 之前有写过一篇浏览器的tab设计,这回说说网站的tab设计。一说到tab很自然地就想到了导航、信息架构。随着网站信息结构的复杂化,选择tab
- 原则一:注意WHERE子句中的连接顺序: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE
- 什么是生产者消费者模型在 工作中,大家可能会碰到这样一种情况:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以
- 本文实例讲述了JavaScript闭包与作用域链。分享给大家供大家参考,具体如下:闭包定义闭包指的是有权访问另一个函数作用域中的变量的函数。
- 创建项目和应用django-admin startproject zqxt_views(项目名)cd zqxt_viewspython ma
- 前言Go语言是Google内部主推的语言,它作为一门全新的静态类型开发语言,与当前的开发语言相比具有许多令人兴奋不已的新特性。专门针对多处理
- 最近使用vscode进行前端编程,遇到一些问题网上说明的不是很明显,故记录一下 1.开vscode使用CTRL+`或者点击查看到集成终端打开
- mongodb是基于分布式文件存储的nosql(非关系型)数据库虽说是nosqldb, but mongodb 其中的文档可以是关系型的在m
- 一、条件控制Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块,而计算机很多自动化任务,也是根据
- 本文实例讲述了Python基于回溯法解决01背包问题。分享给大家供大家参考,具体如下:同样的01背包问题,前面采用动态规划的方法,现在用回溯
- 1. 需要用到的Python库pygametkinter2. 简易UI设计audio_player = Tk()audio_player.t
- 例如,在使用 SQLCMD 实用工具连接到 SQL Server 时收到以下错误消息: Sqlcmd:错误:Microsoft SQL Na
- 最近参与了将一个Sybase数据库移植到Microsoft SQL Server 2000上的项目,我在这一项目上获得的经验,将对Sybas
- opencv中也提供了一种类似于Keras的神经网络,即为ann,这种神经网络的使用方法与Keras的很接近。关于mnist数据的解析,读者
- 技术栈:uniapp-H5+uniapp-微信小程序(vue3+vite2+ts)前言:在单位做项目的时候碰到一个需求,需要从微信小程序跳转