当前位置: 首页 > article >正文

数据的高级处理——pandas模块进阶——数据的查找和替换

        昨天学了一点,玩了一天,今天补上。查找和替换是日常工作中很常见的数据预处理操作,下面来讲解如何使用pandas模块中的函数对DataFrame中的数据进行查找和替换。

1、查找数据 使用pandas模块中的isin()函数查看DataFrame是否包含某个值。

1.1 从整个DataFrame中查找是否包含某个值

1.2 使用isin()函数还可以判断某列中是否有某个值

2、替换数据

2.1 一对一替换

2.2、多对一替换

2.3多对一替换

##############################
##作者:白雪公主的后妈
##时间:2024年12月30日
##主题:数据的高级处理——pandas模块进阶——数据的查找和替换
##主要内容:本章主要讲解pandas模块的进阶用法,包括数据的查找、替换、插入、删除、排序、筛选、运算以及数据表的结构转化和拼接等。
##############################
'''
主题:数据的查找和替换
内容:查找和替换是日常工作中很常见的数据预处理操作,下面来讲解如何使用pandas模块中的
函数对DataFrame中的数据进行查找和替换
'''
#读取数据
import pandas as pd
date=pd.read_excel("E:\\python\\Python_Code\\Excel\\产品统计表.xlsx",sheet_name=0)
print(date)
'''
运行结果:
     编号   产品  成本价(元/个)  销售价(元/个)  数量(个)  成本(元)  收入(元)  利润(元)
0  a001   背包        16        65     60    960   3900   2904
1  a002   钱包        90       187     50   4500   9350   4850
2  a003   背包        16        65     23    368   1495   1127
3  a004  手提包        36       147     26    936   3822   2886
4  a005   钱包        90       187     78   7020  14586   7566
5  a006  单肩包        58       124     63   3654   7812   4158
6  a007  单肩包        58       124     58   3364   7192   3828
'''
#1、查找数据     使用pandas模块中的isin()函数查看DataFrame是否包含某个值。
#1.1    从整个DataFrame中查找是否包含某个值
date1=date.isin(["a001","a002","钱包"])
print(date1)
'''
运行结果:
      编号     产品  成本价(元/个)  销售价(元/个)  数量(个)  成本(元)  收入(元)  利润(元)
0   True  False     False     False  False  False  False  False
1   True   True     False     False  False  False  False  False
2  False  False     False     False  False  False  False  False
3  False  False     False     False  False  False  False  False
4  False   True     False     False  False  False  False  False
5  False  False     False     False  False  False  False  False
6  False  False     False     False  False  False  False  False
'''
#1.2    使用isin()函数还可以判断某列中是否有某个值
date1=date["产品"].isin(["手提包"])
print(date1)
'''
运行结果:
0    False
1    False
2    False
3    True
4    False
5    False
6    False
Name: 产品, dtype: bool
'''
#2、替换数据
'''
如果需要将数据表中的单个或者多个值替换为其他值,可以使用replace()函数来完成。
该函数可以对数据表中的数据进行一对一替换、多对一替换和多对多替换。
'''
#2.1    一对一替换
date.replace("背包","挎包")
print(date)
date1=date.replace("背包","挎包")
print(date1)
'''
运行结果:
     编号   产品  成本价(元/个)  销售价(元/个)  数量(个)  成本(元)  收入(元)  利润(元)
0  a001   背包        16        65     60    960   3900   2904
1  a002   钱包        90       187     50   4500   9350   4850
2  a003   背包        16        65     23    368   1495   1127
3  a004  手提包        36       147     26    936   3822   2886
4  a005   钱包        90       187     78   7020  14586   7566
5  a006  单肩包        58       124     63   3654   7812   4158
6  a007  单肩包        58       124     58   3364   7192   3828
#########根据运行结果可以看出.replace()函数在默认的情况下不对元数据表格进行替换,而是生成一个新的数据表格。
     编号   产品  成本价(元/个)  销售价(元/个)  数量(个)  成本(元)  收入(元)  利润(元)
0  a001   挎包        16        65     60    960   3900   2904
1  a002   钱包        90       187     50   4500   9350   4850
2  a003   挎包        16        65     23    368   1495   1127
3  a004  手提包        36       147     26    936   3822   2886
4  a005   钱包        90       187     78   7020  14586   7566
5  a006  单肩包        58       124     63   3654   7812   4158
6  a007  单肩包        58       124     58   3364   7192   3828
'''
#如果想要对元数据表格进行替换,则需要多replace()函数添加参数inplace,并将该参数的值设置为True。
date.replace("背包","挎包",inplace=True)
print(date)
'''
运行结果:
     编号   产品  成本价(元/个)  销售价(元/个)  数量(个)  成本(元)  收入(元)  利润(元)
0  a001   挎包        16        65     60    960   3900   2904
1  a002   钱包        90       187     50   4500   9350   4850
2  a003   挎包        16        65     23    368   1495   1127
3  a004  手提包        36       147     26    936   3822   2886
4  a005   钱包        90       187     78   7020  14586   7566
5  a006  单肩包        58       124     63   3654   7812   4158
6  a007  单肩包        58       124     58   3364   7192   3828
'''
#2.2、多对一替换
date.replace(["背包","手提包"],"挎包",inplace=True)
print(date)
'''
运行结果:
     编号   产品  成本价(元/个)  销售价(元/个)  数量(个)  成本(元)  收入(元)  利润(元)
0  a001   挎包        16        65     60    960   3900   2904
1  a002   钱包        90       187     50   4500   9350   4850
2  a003   挎包        16        65     23    368   1495   1127
3  a004   挎包        36       147     26    936   3822   2886
4  a005   钱包        90       187     78   7020  14586   7566
5  a006  单肩包        58       124     63   3654   7812   4158
6  a007  单肩包        58       124     58   3364   7192   3828
'''
#2.3、多对多替换
date.replace({"背包":"挎包",16:39,65:88},inplace=True)
print(date)
'''
运行结果:
     编号   产品  成本价(元/个)  销售价(元/个)  数量(个)  成本(元)  收入(元)  利润(元)
0  a001   挎包        39        88     60    960   3900   2904
1  a002   钱包        90       187     50   4500   9350   4850
2  a003   挎包        39        88     23    368   1495   1127
3  a004   挎包        36       147     26    936   3822   2886
4  a005   钱包        90       187     78   7020  14586   7566
5  a006  单肩包        58       124     63   3654   7812   4158
6  a007  单肩包        58       124     58   3364   7192   3828
'''


http://www.kler.cn/a/460577.html

相关文章:

  • 全国城市经纬度--包括省会(直辖市)、地级市
  • 物联网开发利器:基于web的强大的可拖拽组态软件
  • python实现自动登录12306抢票 -- selenium
  • DevOps工程技术价值流:Ansible自动化与Semaphore集成
  • MLP、CNN、Transformer 的区别解析
  • 【深度学习基础之多尺度特征提取】多尺度卷积神经网络(MS-CNN)是如何在深度学习网络中提取多尺度特征的?附代码(二)
  • Linux ipmitool工具使用笔记
  • 输入ssh-add ~/.ssh/login ,显示Enter passphrase for /c/Users/.ssh/login:
  • UniApp 原生插件开发指南
  • C# OpenCV机器视觉:车牌识别
  • 基于深度学习的语音识别系统实现:开启语音交互的新时代
  • VScode 格式化代码空格记录
  • Python软体中使用 Celery 与 RabbitMQ 实现高效异步任务队列:完整部署与实战指南
  • Webpack 优化全攻略:彻底解决 Vue 项目 npm run dev 的内存泄露问题
  • MySQL数据库——常见慢查询优化方式
  • 图像/特征相似计算
  • PostgreSQL数据库缓冲区管理模块
  • Binlog 深度解析:数据灾难下的绝地反击
  • 洛谷 P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布
  • [实用指南]如何将视频从iPhone传输到iPad
  • XGPT用户帮助手册
  • SQLiteDataBase数据库
  • Python 青铜宝剑十六维,破医疗数智化难关(下)
  • docker compose部署kafka集群
  • Linux -- 死锁、自旋锁
  • Oracle库锁表处理