Python_Pandas_处理数据的缺失值和重复值
一.处理数据的缺失值
描述
- 使用isnull()函数可以判断数据表中的哪个值是缺失值,并将缺失值标记为True,非缺失值标记为False
- 使用dropna函数可以删除数据表中含有缺失值的行。默认情况下,只要某一行中有缺失值,该函数就会把这一行删除
- 使用fillna()函数可以将数据表中的所有缺失值填充为指定的值
语法和参数
- DataFrame.isnull()
- DataFrame.dropna(how=None)
- how:默认为空,当how=all时,删除数据中整行都为空的行
- DataFrame.fillna(value)
- value:需要填充的值
实例
import pandas as pddata = pd.read_excel('产品统计表1.xlsx')
print(data)
'''
编号 产品 成本价(元/个) 销售价(元/个) 数量(个) 成本(元) 收入(元) 利润(元)
0 a001 背包 16.0 65 60 960.0 3900 2940
1 a002 钱包 90.0 187 50 4500.0 9350 4850
2 a003 背包 NaN 65 23 368.0 1495 1127
3 a004 手提包 36.0 147 26 936.0 3822 2886
4 a005 钱包 90.0 187 78 7020.0 14586 7566
5 a006 单肩包 58.0 124 63 3654.0 7812 4158
6 a007 单肩包 58.0 124 58 NaN 7192 3828
'''
# 查看数据的缺失值情况
print(data.info())
'''
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 7 entries, 0 to 6
Data columns (total 8 columns):# Column Non-Null Count Dtype
--- ------ -------------- ----- 0 编号 7 non-null object 1 产品 7 non-null object 2 成本价(元/个) 6 non-null float643 销售价(元/个) 7 non-null int64 4 数量(个) 7 non-null int64 5 成本(元) 6 non-null float646 收入(元) 7 non-null int64 7 利润(元) 7 non-null int64
dtypes: float64(2), int64(4), object(2)
memory usage: 576.0+ bytes
None
'''
# 判断数据表中的哪个值是缺失值
a = data.isnull()
print(a)
'''
编号 产品 成本价(元/个) 销售价(元/个) 数量(个) 成本(元) 收入(元) 利润(元)
0 False False False False False False False False
1 False False False False False False False False
2 False False True False False False False False
3 False False False False False False False False
4 False False False False False False False False
5 False False False False False False False False
6 False False False False False True False False
'''
# 删除数据表中含有缺失值的行
b = data.dropna()
print(b)
'''编号 产品 成本价(元/个) 销售价(元/个) 数量(个) 成本(元) 收入(元) 利润(元)
0 a001 背包 16.0 65 60 960.0 3900 2940
1 a002 钱包 90.0 187 50 4500.0 9350 4850
3 a004 手提包 36.0 147 26 936.0 3822 2886
4 a005 钱包 90.0 187 78 7020.0 14586 7566
5 a006 单肩包 58.0 124 63 3654.0 7812 4158
'''
# 删除数据表中整行都是缺失值的行
c = data.dropna(how='all')
print(c)
'''
编号 产品 成本价(元/个) 销售价(元/个) 数量(个) 成本(元) 收入(元) 利润(元)
0 a001 背包 16.0 65 60 960.0 3900 2940
1 a002 钱包 90.0 187 50 4500.0 9350 4850
2 a003 背包 NaN 65 23 368.0 1495 1127
3 a004 手提包 36.0 147 26 936.0 3822 2886
4 a005 钱包 90.0 187 78 7020.0 14586 7566
5 a006 单肩包 58.0 124 63 3654.0 7812 4158
6 a007 单肩包 58.0 124 58 NaN 7192 3828
'''
# 将数据表中所有的值都填充为0
d = data.fillna(0)
print(d)
'''
编号 产品 成本价(元/个) 销售价(元/个) 数量(个) 成本(元) 收入(元) 利润(元)
0 a001 背包 16.0 65 60 960.0 3900 2940
1 a002 钱包 90.0 187 50 4500.0 9350 4850
2 a003 背包 0.0 65 23 368.0 1495 1127
3 a004 手提包 36.0 147 26 936.0 3822 2886
4 a005 钱包 90.0 187 78 7020.0 14586 7566
5 a006 单肩包 58.0 124 63 3654.0 7812 4158
6 a007 单肩包 58.0 124 58 0.0 7192 3828
'''
# 为不同列中的缺失值设置不同的填充值
e = data.fillna({'成本价(元/个)': 16, '成本(元)': 3364})
print(e)
'''编号 产品 成本价(元/个) 销售价(元/个) 数量(个) 成本(元) 收入(元) 利润(元)
0 a001 背包 16.0 65 60 960.0 3900 2940
1 a002 钱包 90.0 187 50 4500.0 9350 4850
2 a003 背包 16.0 65 23 368.0 1495 1127
3 a004 手提包 36.0 147 26 936.0 3822 2886
4 a005 钱包 90.0 187 78 7020.0 14586 7566
5 a006 单肩包 58.0 124 63 3654.0 7812 4158
6 a007 单肩包 58.0 124 58 3364.0 7192 3828
'''
二.处理数组的重复值
描述
- drop_duplicates()函数可以删除重复值
- unique()函数可以提取唯一值
用法和参数
- DataFrame.drop_duplicates(subset=None, keep=“first”)
- subset:删除某一列的重复值
- keep:自定义删除重复值时保留哪个重复值所在的行
- DataFrame.unique()
实例
import pandas as pddata = pd.read_excel('产品统计表2.xlsx')
print(data)
'''
编号 产品 成本价(元/个) 销售价(元/个) 数量(个) 成本(元) 收入(元) 利润(元)
0 a001 背包 16 65 60 960 3900 2940
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 a004 手提包 36 147 26 936 3822 2886
5 a005 钱包 90 187 78 7020 14586 7566
6 a006 单肩包 58 124 63 3654 7812 4158
'''
# 删除重复的行
a = data.drop_duplicates()
print(a)
'''
编号 产品 成本价(元/个) 销售价(元/个) 数量(个) 成本(元) 收入(元) 利润(元)
0 a001 背包 16 65 60 960 3900 2940
1 a002 钱包 90 187 50 4500 9350 4850
2 a003 背包 16 65 23 368 1495 1127
3 a004 手提包 36 147 26 936 3822 2886
5 a005 钱包 90 187 78 7020 14586 7566
6 a006 单肩包 58 124 63 3654 7812 4158
'''
# 删除某一列的重复值
b = data.drop_duplicates(subset='产品')
print(b)
'''
编号 产品 成本价(元/个) 销售价(元/个) 数量(个) 成本(元) 收入(元) 利润(元)
0 a001 背包 16 65 60 960 3900 2940
1 a002 钱包 90 187 50 4500 9350 4850
3 a004 手提包 36 147 26 936 3822 2886
6 a006 单肩包 58 124 63 3654 7812 4158
'''
# 保留第一个重复值所在的行
c = data.drop_duplicates(subset='产品', keep='first')
print(c)
'''
编号 产品 成本价(元/个) 销售价(元/个) 数量(个) 成本(元) 收入(元) 利润(元)
0 a001 背包 16 65 60 960 3900 2940
1 a002 钱包 90 187 50 4500 9350 4850
3 a004 手提包 36 147 26 936 3822 2886
6 a006 单肩包 58 124 63 3654 7812 4158
'''
# 保留最后一个重复值所在的行
d = data.drop_duplicates(subset='产品', keep='last')
print(d)
'''
编号 产品 成本价(元/个) 销售价(元/个) 数量(个) 成本(元) 收入(元) 利润(元)
2 a003 背包 16 65 23 368 1495 1127
4 a004 手提包 36 147 26 936 3822 2886
5 a005 钱包 90 187 78 7020 14586 7566
6 a006 单肩包 58 124 63 3654 7812 4158
'''
# 把重复值一个不留的删除
e = data.drop_duplicates(subset='产品', keep=False)
print(e)
'''
编号 产品 成本价(元/个) 销售价(元/个) 数量(个) 成本(元) 收入(元) 利润(元)
6 a006 单肩包 58 124 63 3654 7812 4158
'''
f = data['产品'].unique()
print(f)
'''
['背包' '钱包' '手提包' '单肩包']
'''
Python_Pandas_处理数据的缺失值和重复值相关推荐
- python数据预处理_Python数据预处理——缺失值、重复值
一.缺失值处理 isnull( ) .fillna( ) .dropna( ) (1)查看 缺失 查看数据集缺失,返回每列的缺失个数 df.isnull().sum() 查看某字段有缺失的行 df[d ...
- datacombo重复值的处理_Pandas入门【S1E3】缺失值和重复值处理
导语: 前两期分别就pandas安装和导入数据.pandas数据探索做了梳理. 回顾如下: Pandas安装和数据导入mp.weixin.qq.com Pandas数据探索mp.weixin.qq ...
- Pandas数据分析17——pandas数据清洗(缺失值、重复值处理)
参考书目:<深入浅出Pandas:利用Python进行数据处理与分析> pandas对大数据有很多便捷的清洗用法,尤其针对缺失值和重复值.缺失值就不用说了,会影响计算,重复值有时候可能并未 ...
- python concat去除重复值语句_Python数据处理从零开始----第二章(pandas)④数据合并和处理重复值...
目录 第二章(pandas) Python数据处理从零开始----第二章(pandas)④数据合并和处理重复值 ============================================ ...
- python数据框去重_【Python】基于某些列删除数据框中的重复值
Python按照某些列去重,可用drop_duplicates函数轻松处理.本文致力用简洁的语言介绍该函数. 一.drop_duplicates函数介绍 drop_duplicates函数可以按某列去 ...
- python绘制星空图_【Python】基于某些列删除数据框中的重复值
阿黎逸阳 精选Python.SQL.R.MATLAB等相关知识,让你的学习和工作更出彩(可提供风控建模干货经验). Python按照 某些列去重 ,可用 drop_duplicates函数轻松处理 . ...
- xlsx表格怎么筛选重复数据_excel表格如何筛选重复数据 在Excel表格的两列数据中提取不重复值的四种方法...
excel表格如何筛选重复数据 在Excel表格的两列数据中提取不重复值的四种方法,最近到了季度汇报的时候,掌握一手excel技能在此刻显得多么重要,为了是你的excel看起来更高大上,今天教大家设置 ...
- 【数据科学】05 数据合并(merge、concat、combine)与数据清洗(缺失值、重复值、内容和格式)
文章目录 1. 数据合并 1.1 merge()合并 1.2 concat()合并 1.3 combine()合并 2. 数据清洗 2.1 缺失值 2.2 重复值 2.3 内容与格式清洗 1. 数据合 ...
- 请教个问题,我想把数据中名字的重复值删掉,只保留年纪大的怎么整呢?
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 三年谪宦此栖迟,万古惟留楚客悲. ...
最新文章
- 全国计算机二级vfp知识点,全国计算机二级VFP知识点总结
- 兰州大学C语言程序设计课程作业,【兰州大学|兰州大学C语言程序设计课程作业( 五 )】语言程序设计|课程|作业-傻大方...
- 10个例子带你了解机器学习中的线性代数
- centos7 搭建本地git_本地服务调用K8S环境中的SpringCloud微服务实战
- 画风清奇!看看大佬怎么玩Python
- Inno Setup 5制作安装程序
- linux 音频驱动的流程,Intel平台下Linux音频驱动流程分析
- thymeleaf加载不了js引用_网站首页加载慢解决方案
- java简单的复数类_Java练习 SDUT-4303_简单的复数运算(类和对象)
- 常用应用层传输协议和端口
- Introduction to my galaxy engine 8 : Real Time Fluid Rendering
- C语言冒泡排序和选择排序
- 《程序员情商》自我修养必备《论语》
- 解决浏览器下载附件乱码问题 IE11
- 由手机号绑定的账号,都应设置更换手机号功能
- Vue常用经典开源项目汇总参考-海量
- word插入图片的同时自动插入图片名称
- win10如何自动切换壁纸
- 二分+前缀和——聪明的质检员
- 【HDFS】Observer Namenode开启in-progress tail之后导致误删除in-progress状态的editlog问题
热门文章
- python 实现文章中词汇的频率统计并进行显示(针对英文文章)
- toefl阅读写作口语评分解读
- 【文献阅读】PSO混合GA解决不确定IPPS问题
- 教育培训行业APP开发功能明细
- 嵌入式linux轻量级sshd服务工具Dropbear移植
- keep-alive失效原因及解决方案
- 互联网日报 | 华为发布首款商用台式机;京东健康正式登陆港交所;苹果推出首款头戴式耳机...
- 【PCBA方案设计】红外测温仪电子温度计方案开发
- 华为荣耀20和x10比较_华为Mate 20与荣耀X10哪个好
- 【创业】PPLive创始人姚欣谈创业与融资