数据情况查看

  • 预览数据前n行
    Python中预览数据可以使用head()函数,该函数默认展示前5行。
# 查看数据前2行
df.head(2)
  • 查看数据末尾n行
    可以使用tail()函数,查看数据末尾n行的数据,该函数默认展示5行
# 查看数据前2行
df.tail(2)
  • 获取数据表的行列数量
    在Python中获取数据表的行列数量,可以通过shape方法
# 获取表格的行列
df.shape
  • 获取数据表的数据类型
    获取数据表的数据类型,可以使用info()方法。
# 查看数据类型
df.info()# 返回了所有列的数据类型
'''
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 6 entries, 0 to 5
Data columns (total 4 columns):#   Column  Non-Null Count  Dtype
---  ------  --------------  ----- 0   功能      6 non-null      object1   关键字     6 non-null      object2   说明      6 non-null      object3   备注      1 non-null      object
dtypes: object(4)
memory usage: 320.0+ bytes
'''
  • 获取数据的分布情况
    获取数据的分布情况可以用describe()方法。
返回数据的分布情况
df.describe()'''
describe会返回计数,平均值,最小值,最大值,四分位数等
'''

缺失值处理

  • 查看缺失值
    查看缺失值,可以通过isnull() 或 info()函数实现。
''' 显示各列有多少非空值'''
df.info()''' 显示那个值为缺失值'''
df.isnull()
  • 删除缺失值
    删除含有缺失值的行可以使用dropna()方法
'''
dropna()方法会删除所有包含NaN值得行,然后返回删除后的数据。
dropna(how = 'all')则删除全部为空值的行
'''df.dropna()
df.dropna(how = 'all')
  • 填充缺失值
    填充缺失值,可以使用fillna()方法
# 将NaN值全部转换为0
df.fillna(0)'''
单列缺失值替换
将df表中年龄列的NaN值全部转化为0
'''
df.fillna({"年龄":0})'''
多列缺失值替换
将df表中年龄、成绩列的NaN值全部替换成0
'''
df.fillna({"年龄":0,"成绩":0})

重复值处理

删除重复值可以使用drop_duplicates()方法,该函数默认对所有值进行重复值判断,并默认保留第一行的值。
格式:drop_duplicates(subset, keep)
参数
subset:传入删重依据的列
keep:frist删重时保留第一个值,last保留最后一个值,False把重复值全部删除。

'''创建一个DateFrame'''df1=pd.DataFrame([[1,'张三'],[2,'李四'],[2,'李四'],[2,'王五'],[3,'赵六']],columns=("id","姓名"))
df1# 返回id   姓名
0   1   张三
1   2   李四
2   2   李四
3   2   王五
4   3   赵六'''对df1去重重复值,函数默认根据所有重复值进行了判断去重,并保留了第一行'''print(df1.drop_duplicates())# 返回id  姓名
0   1  张三
1   2  李四
3   2  王五
4   3  赵六'''对df1根据id列去除重复值将列名赋值给subset参数'''print(df1.drop_duplicates(subset="id"))# 返回id  姓名
0   1  张三
1   2  李四
4   3  赵六'''对df1根据id,姓名列去除重复值将列名以列表的形式传给subset参数。'''print(df1.drop_duplicates(subset=['id','姓名']))# 返回id  姓名
0   1  张三
1   2  李四
3   2  王五
4   3  赵六'''对df1根据id列去除重复值并保留重复值的最后一行'''print(df1.drop_duplicates(subset="id",keep='last'))# 返回id  姓名
0   1  张三
3   2  王五
4   3  赵六'''
对df1根据id列去除重复值
并去除所有重复行,注意False的首字母大写,且没有用''引起
'''print(df1.drop_duplicates(subset="id",keep=False))# 返回id  姓名
0   1  张三
4   3  赵六

异常值处理

异常值一般分为数学统计上的异常值和实际业务中的异常值。数理统计上如正态分布中数值与平均值偏差超过3个标差的值。实际业务中如人的年龄小于0岁,重量为1吨等。

  • 异常值处理办法

    • 删除相关数据
    • 对异常值进行替换
    • 作为特殊情况进行研究

删除数据:可以使用drop(),pop()等函数,但感觉将需要的数据筛选出来更方便。

''' 创建一个3*3的df2'''
df2= pd.DataFrame(np.arange(9).reshape((3,3)),index = list('abc'),columns=['x','y','z'])# 返回x    y   z
a   0   1   2
b   3   4   5
c   6   7   8'''删除a行'''
df2.drop('a',axis=0)# 返回x    y   z
b   3   4   5
c   6   7   8'''删除x列,pop会修改原数据'''
df2.pop('x')
df2# 返回y    z
a   1   2
b   4   5
c   7   8

对异常值替换:可以使用replace()函数。

import pandas as pd
import  numpy as np
df3 = pd.DataFrame(np.arange(16).reshape((4,4)),index = [1,2,3,4],columns=['A','B','C','D'])'''将A列中0替换成10'''
df3[['A']].replace(0,10)# 返回A
a   0
b   4
c   8
d   0

单列多值替换

'''将将A列中0替换成10,4替换成20'''
df3[['A']].replace({0:10,4:20})"""也可以用列表的方式展示 """
df3[['A']].replace([0,4],[10,20])# 返回A
a   10
b   20
c   8
d   12

多列相同值替换规则

'''将将A、B列中0替换成10,1替换成20'''
df3[['A','B']].replace([0,1],[10,20])# 返回A  B
a   10  20
b   4   5
c   8   9
d   12  13

空值替换(np.NaN是python对缺失值的一种表达方法)

'''将空值替换成0。由于df3没有空值,所以原数据无修改'''
df3.replace(np.NaN,0)# 返回A  B   C   D
a   0   1   2   3
b   4   5   6   7
c   8   9   10  11
d   12  13  14  15

数据类型转换

Python中常用的数据类型有以下6种:

类型 说明
int 整数型
float 浮点型
object 对象类型
string_ 字符串
unicode_ 固定长度的Unicode类型
datatime64[ns] 时间格式

在Python中可以使用info()函数查看每一列的数据类型,也可以用dtype()函数来查看具体某一列的数据类型。

df1=pd.DataFrame([[1,'张三'],[2,'李四'],[2,'李四'],[2,'王五'],[3,'赵六']],columns=("id","姓名"))'''查看df1的数据类型'''
df1.info()# 返回
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5 entries, 0 to 4
Data columns (total 2 columns):#   Column  Non-Null Count  Dtype
---  ------  --------------  ----- 0   id      5 non-null      int64 1   姓名      5 non-null      object
dtypes: int64(1), object(1)
memory usage: 208.0+ bytes'''查看id列的数据类型'''
df1['id'].dtype# 返回
dtype('int64')

改变数据类型可以用astype()函数实现。

格式:df [“索引名”].astype(“修改后数据类型”)

'''将id列转换为float浮点型'''
df1['id'].astype("float")# 返回
0    1.0
1    2.0
2    2.0
3    2.0
4    3.0
Name: id, dtype: float64

pandas笔记(3)——DataFrame数据查看,缺失值,异常值,重复值预处理相关推荐

  1. Python_Pandas_处理数据的缺失值和重复值

    一.处理数据的缺失值 描述 使用isnull()函数可以判断数据表中的哪个值是缺失值,并将缺失值标记为True,非缺失值标记为False 使用dropna函数可以删除数据表中含有缺失值的行.默认情况下 ...

  2. Python之pandas:将dataframe数据写入到xls表格的多个sheet内(防止写入数据循环覆盖sheet表)

    Python之pandas:将dataframe数据写入到xls表格的多个sheet内(防止写入数据循环覆盖sheet表) 目录 将dataframe数据写入到xls表格的多个sheet内(防止写入数 ...

  3. Python之pandas:对dataframe数据的索引简介、应用大全(输出索引/重命名索引列/字段去重/设置复合索引/根据列名获取对应索引)、指定某字段为索引列等详细攻略

    Python之pandas:对dataframe数据的输出索引.重命名索引列/字段去重/设置复合索引/根据列名获取对应索引.指定某字段为索引列等详细攻略 目录 对pandas中dataframe数据中 ...

  4. Pandas数据分析17——pandas数据清洗(缺失值、重复值处理)

    参考书目:<深入浅出Pandas:利用Python进行数据处理与分析> pandas对大数据有很多便捷的清洗用法,尤其针对缺失值和重复值.缺失值就不用说了,会影响计算,重复值有时候可能并未 ...

  5. python concat去除重复值语句_Python数据处理从零开始----第二章(pandas)④数据合并和处理重复值...

    目录 第二章(pandas) Python数据处理从零开始----第二章(pandas)④数据合并和处理重复值 ============================================ ...

  6. datacombo重复值的处理_Pandas入门【S1E3】缺失值和重复值处理

    导语: 前两期分别就pandas安装和导入数据.pandas数据探索做了梳理. 回顾如下: Pandas安装和数据导入​mp.weixin.qq.com Pandas数据探索​mp.weixin.qq ...

  7. python数据框去重_【Python】基于某些列删除数据框中的重复值

    Python按照某些列去重,可用drop_duplicates函数轻松处理.本文致力用简洁的语言介绍该函数. 一.drop_duplicates函数介绍 drop_duplicates函数可以按某列去 ...

  8. python绘制星空图_【Python】基于某些列删除数据框中的重复值

    阿黎逸阳 精选Python.SQL.R.MATLAB等相关知识,让你的学习和工作更出彩(可提供风控建模干货经验). Python按照 某些列去重 ,可用 drop_duplicates函数轻松处理 . ...

  9. xlsx表格怎么筛选重复数据_excel表格如何筛选重复数据 在Excel表格的两列数据中提取不重复值的四种方法...

    excel表格如何筛选重复数据 在Excel表格的两列数据中提取不重复值的四种方法,最近到了季度汇报的时候,掌握一手excel技能在此刻显得多么重要,为了是你的excel看起来更高大上,今天教大家设置 ...

最新文章

  1. AtCoder - 2581 Meaningful Mean
  2. mysql计算1000天后的日期_mysql,数据库_mysql 计算某个时间,多少天后,多少个月后时间戳,mysql,数据库,数据库设计 - phpStudy...
  3. linux查看当前会话文件夹,Linux 记录会话过程的命令
  4. 半夜三点,去医院看病。。。
  5. 信息学奥赛一本通(1003:对齐输出)
  6. JDK1.7 深入理解 LinkedHashMap
  7. ionic 侧栏菜单用法
  8. chrome jsp 显示不正常_selenium+java谷歌浏览器 网站打开不正常
  9. 使用Blender编辑Character Creater 4的人物形象
  10. (双硬盘(SSD+HDD)/单硬盘)双系统win10+ubuntu18.04安装记录
  11. JSP WebSehll 后门脚本
  12. 手脱 FSG 1.0 壳
  13. 用js实现背景颜色改变
  14. matlab颜色图 热力图 等高线图 色卡 色阶 颜色映像 colormap
  15. 自顶向下的GAMMA显著性——学习搜索复杂场景中的对象
  16. 重力感应贪吃蛇(C51 MPU6050 8*8LED点阵)
  17. 印度舞曲吉米来吧(中文版)铃声 印度舞曲吉米来吧(中文版)手机...
  18. 【步态识别】LagrangeGait基于拉格朗日《Lagrange Motion Analysis and View Embeddings for Improved Gait Recognition》
  19. 9_用户的登录和登出
  20. PGSQL 日期时间的比较

热门文章

  1. 程序员必知的8个Java开源IDE工具!你最钟意哪个?
  2. 公众号创建菜单报错40001及菜单出现在先前公众号上的问题
  3. Kermit,Xmodem,1K-Xmodem,Ymodem,Zmodem传输协议小结
  4. 新手转行学大数据开发难吗?新手学需要注意的6个方面!
  5. 2022年国庆节水篇
  6. GD32F470之串口空闲中断+DMA篇
  7. 金蝶虚拟化客户端连不上服务器,金蝶kis客户端远程连接服务器
  8. shell脚本编程大全
  9. 摊牌了,做为前端,我经常在用的15个国外网站
  10. ArkUI开发趣味体验,快来抽取限量HarmonyOS专属头像!