Pandas 筛选和删除目标值所在的行的实现

 更新时间:2022年07月24日 09:27:36   作者:山茶花开时。  
本文主要介绍了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(处理后) 

 到此这篇关于Pandas 筛选和删除目标值所在的行的实现的文章就介绍到这了,更多相关Pandas 筛选和删除目标值所在的行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python类的方法属性与方法属性的动态绑定代码详解

    python类的方法属性与方法属性的动态绑定代码详解

    这篇文章主要介绍了python类的方法属性与方法属性的动态绑定代码详解,具有一定借鉴价值,需要的朋友可以参考下
    2017-12-12
  • Django文件存储 自己定制存储系统解析

    Django文件存储 自己定制存储系统解析

    这篇文章主要介绍了Django文件存储 自己定制存储系统解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 详解Python中Addict模块的使用方法

    详解Python中Addict模块的使用方法

    Addit是一个Python模块,除了提供标准的字典语法外,Addit 生成的字典的值既可以使用属性来获取,也可以使用属性进行设置。本文将详细讲讲它的使用方法,需要的可以参考一下
    2022-05-05
  • python调用opencv实现猫脸检测功能

    python调用opencv实现猫脸检测功能

    这篇文章主要介绍了python调用opencv实现猫脸检测功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • Python创建二维数组与初始化的实践举例

    Python创建二维数组与初始化的实践举例

    二维数组使用简便可以有很多简洁的操作,实现多元的要求,下面这篇文章主要给大家介绍了关于Python创建二维数组与初始化的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • python或C++读取指定文件夹下的所有图片

    python或C++读取指定文件夹下的所有图片

    这篇文章主要为大家详细介绍了python或C++读取指定文件夹下的所有图片,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • 如何在Django中添加没有微秒的 DateTimeField 属性详解

    如何在Django中添加没有微秒的 DateTimeField 属性详解

    这篇文章主要给大家介绍了关于如何在Django中添加没有微秒的 DateTimeField 属性的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • 在Python中调用Ping命令,批量IP的方法

    在Python中调用Ping命令,批量IP的方法

    今天小编就为大家分享一篇在Python中调用Ping命令,批量IP的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • 手把手教你使用Django + Vue.js 快速构建项目

    手把手教你使用Django + Vue.js 快速构建项目

    本篇将基于Django + Vue.js,手把手教大家快速的实现一个前后端分离的Web项目。文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 学会Python数据可视化必须尝试这7个库

    学会Python数据可视化必须尝试这7个库

    数据可视化是使用一些绘图和图形更详细地理解数据的过程.最著名的库之一是 matplotlib,它可以绘制几乎所有您可以想象的绘图类型.matplotlib 唯一的问题是初学者很难掌握.在本文中,我将介绍七个数据可视化库,你可以尝试使用它们来代替 matplotlib ,需要的朋友可以参考下
    2021-06-06

最新评论