数据的高级处理——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
'''