Pandas教程(三)—— 数据清洗与准备

1.处理缺失值

 1.1 数据删除函数

    作用:删除Dataframe某行或某列的数据 

    语法:df.drop( labels = [ ] )

drop函数的几个参数:

         labels =:接收一个列表,内含删除行 / 列的索引编号或索引名

         axis =:删除的轴向   0代表删除行;1代表删除列

         inplace =:是否改变原数组    默认False 即生成一个新数组

 1.2 缺失值的查看

方法

描述

df.isnull()返回一个布尔数组,是缺失值就显示True
df.notnull()返回一个布尔数组,是缺失值就显示False

 1.3 过滤缺失值 

     作用:删除缺失值所在的行 / 列

     语法:df.dropna( axis=0, how='any', thresh=None, subset=None, inplace=False )

dropna函数的几个参数:

         axis =:0代表删除包含缺失值的行;1代表删除包含缺失值的列

         how=:“any”代表删除有缺失值的行 / 列 ; “all”代表删除所有值均缺失的行 / 列

         thresh=:行 / 列中若达不到thresh个非缺失值,就删除

         subset=:输入一个含索引名称的list,代表对这些列的空值进行删除

 1.4 填充缺失值

     作用:将缺失值补全为指定的值

     语法:df.fillna(value, method=None, axis=None, inplace=False, limit=None)

fillna函数的几个参数:

         value:填充的值,也可输入一个字典(用于为不同的列设置不同的填充值)

         method:填充方法   “ffill”用前面的值填充    “bfill”用后面的值填充

         axis:修改填充的轴

         limt:最大填充数

2. 数据转换方法

 2.1 删除和提取重复值

   2.1.1 查看元素个数

  •  语法:df [ 列名 ] . value_counts()
  •  与count()函数的区别:前者是返回各个元素的个数,后者时返回该列中所有元素的总数

   2.1.2 删除重复值

  •  语法: df.drop_duplicates(subset=None, keep='first', inplace=False)

参数说明

        subset:输入一个list,用来要操作的列,默认是所有列

        keep:指定处理重复值的方法      

                   “first” 指保留第一次出现的值      “last” 指保留最后一次出现的值

                   “False” 不保留重复值,全部删除

   2.1.3 提取重复值

  •  语法:df [ df.duplicated(subset=None, keep='first') ] 
  •  原理:相当于运用了索引切片的操作,中括号内的函数用来判断是否为重复值 

   

 2.2 数据替换

   2.2.1 元素替换

  • 语法:df.replace(被替换的元素,替换元素)
  • 注意: 1)如果要一次替换多个不同的值,可以利用列表或者字典
  •             2)如果想仅对某列替换,先利用df [ ] 切片即可

   2.2.2 字符串替换 

  •  语法:df.str.replace(被替换的字符串,替换字符串)
  •  区别:它是对字符串进行按元素替代的,可以对字符串切片后进行替换操作

        例如:“山东省” 一> “山西省”,该方法就可直接替换“东” 一>“西”,这对于操作长数据非常方便

 2.3 离散化和分箱 

        连续值经常需要离散化,或者分离成“箱子”进行处理。即:分组

   2.3.1 指定分界点分箱

  •  语法:pd.cut  (x, bins, right=True, labels=None, precision=3, include_lowest=False)

参数说明:

         

          x:    待切割的一维数组或列表对象

          bins:   切割箱      若输入一个整数,则定义了x宽度范围内的等宽面元数量;

                                        若输入一个序列,则代表分界点

          right:   是否为左开右闭区间

          labels:   自定义箱子名称     传入数组或列表(与箱子等长)

          precision:  箱子精度            保留几位小数

          include_lowest:第一个区间的左端点是否包含            

       

 

   2.3.2 等宽(频)分箱

  •  作用:保证每个箱子的样本数一样
  •  语法:pandas.qcut  ( x, q, labels=None, precision=3 )

参数说明:

          q:整数(分成几份)  或   分位数(0~1)组成的数组(分割点)

   2.3.3 补充说明 

     1)以上两个函数会返回一个Categorical对象,会显示每个元素对应的箱名

     2)对于返回的Categorical对象,可以结合数学统计函数去做数据统计

import pandas as pd
year = [1992,1985,1937,2005,2015,1999] #数据
box = [1930,1960,1990,2020]    #箱子
box_name=["初期","中期","后期"]  #定义箱子名result1 = pd.cut(year,box,labels=box_name)  #按指定的箱分割,并指定箱名
print(result1)
print("-"*30)
print(result1.describe()) #做数据统计
print("-"*30)result2 = pd.qcut(year,3) #分成三段
print(result2)

 

 2.4 其他数据转化操作

操作方法参数
实现one hot encodeget_dummies(data)

columns:需要转换的列

prefix:转换后列名的前缀

随机抽取子集df.sample(n=)

replace:取出后是否放回(默认不放回)

n:抽取的样本数(列数目)

重命名轴索引df.rename(index= ,    columns=)可以输入字典{ 旧索引名:新索引名  }

 

  • one hot encode(独热编码):   将离散型特征的每一种取值都看成一种状态 
正常
one hot encode

3.字符串操作

 3.1 字符串常用方法

python常用字符串方法

 

import pandas as pd
str = "a / b/   wow"
new = str.split("/")
print(new)    # 按符号拆分字符串   ['a ', ' b', '   wow']piece = [x.strip() for x in new]
print(piece)  # 与strip搭配使用 ,去除空格   ['a', 'b', 'wow']jia = "--".join(piece)
print(jia)    # 将字符串用符号拼接起来   a--b--wowprint(jia.index("-")) # 返回“-”第一次出现的位置  1

 3.2 正则表达式

        正则表达式是一组由字母和符号组成的特殊文本,用于在文本中灵活的查找我们想要的格式的字符串,例如在一封邮件中提取所有的电话,在一篇文章中提取所有的地址

 

   3.2.1 正则表达式的常用函数

          要使用正则表达式函数,首先要导入re模块:import re

函数描述
re.compile()编译正则表达式,用其他函数再调用正则表达式,就不用重复编译了,提高效率
re.spilt(“分隔符”,data)通过指定的分隔符将字符串拆分

re.findall(正则表达式,data)

匹配出字符串中所有符合正则表达式的值,并且以列表的形式返回

re.sub(old,new)

替换字符串

比replace好处:可以在 "[ ]" 内输入多个符号,同时被取代 

re.search(正则表达式,data)

返回文本中第一个匹配项
re.match(正则表达式,data)仅从字符串起始位置开始匹配,若满足要求则返回

 

 

   3.2.2 正则表达式基础语法

 

 

  • 贪婪与非贪婪

       1)贪婪:'[a-zA-Z]{3,5}'    一>  要求找连续的3~5个字母

                  先找三个连续的字母,最多找到5个连续的字母后停止;在3个以后且5个以内发

           现了不是字母的也停止。然后接着找下一个

       2)非贪婪: '[a-zA-Z]{3}'     一>   找连续的3个字母,找到3个就停止,接着下一个

# 提取字符串a中所有的数字
import re
a = '孙悟空7猪八戒6沙和尚3唐僧6白龙马'
r = re.findall('[0-9]',a)
print(r)                   # 返回结果:['7', '6', '3', '6']# 找到字符串中间字母不是d或e的单词
a = 'xyz,xcz,xfz,xdz,xaz,xez'
r = re.findall('x[^de]z',a)
print(r)                   # 返回:['xyz', 'xcz', 'xfz', 'xaz']      # 提取特殊字符、空格、\n、\t等
import re
a = 'Excel 12345Word\n23456_PPT12lr'
r = re.findall('\W',a)
print(r)       

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/225997.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20231222给NanoPC-T4(RK3399)开发板的适配原厂Android10的挖掘机方案并跑通AP6398SV

20231222给NanoPC-T4(RK3399)开发板的适配原厂Android10的挖掘机方案并跑通AP6398SV 1、简略步骤:rootrootrootroot-X99-Turbo:~/3TB/3399-android10$ cat Rockchip_Android10.0_SDK_Release.tar.gz0* > Rockchip_Android10.0_SDK_Release.tar.gz rootrootrootro…

python pip安装依赖的常用软件源

目录 引言 一、什么是镜像源?​​​​​​​ 二、清华源 三、阿里源 四、中科大源 五、豆瓣源 六、更多资源 引言 在软件开发和使用过程中,我们经常需要下载和更新各种软件包和库文件。然而,由于网络环境的限制或者服务器的负载&#…

Vue3中说说Tree shaking特性?举例说明一下?

提起Vue3里面的Tree shaking时候,需要提到它是通过构建工具和模块导入方式实现的。然后我们再说说Tree shaking是什么和作用 一、通过构建工具和模块导入方式实现 1.配置构建工具: 在 Vue 3 项目中,通常使用 webpack 进行构建。为了启用 T…

百度CTO王海峰:文心一言用户规模破1亿

▶ 写在前面▶ 飞桨开发者已达1070万▶ 文心一言用户规模破亿,日提问量快速增长 ▶ 写在前面 “文心一言用户规模突破 1 亿。”12 月 28日,百度首席技术官、深度学习技术及应用国家工程研究中心主任王海峰在第十届 WAVE SUMMIT 深度学习开发者大会上宣布…

数据结构--查找

目录 1. 查找的基本概念 2. 线性表的查找 3. 树表的查找 3.1 二叉排序树 3.1.1 定义: 3.1.2 存储结构: 3.1.3 二叉排序树的查找 3.1.4 二叉排序树的插入 3.1.5 二叉排序树删除 3.2 平衡二叉树(AVL 3.2.1 为什么要有平衡二叉树 3.2.2 定义 3.3 B-树 3.3.1…

【《设计模式之美》】如何取舍继承与组合

文章目录 什么情况下不推荐使用继承?组合相比继承有哪些优势?使用组合、继承的时机 本文主要想了解: 为什么组合优于继承,多用组合少用继承。如何使用组合来替代继承哪些情况适用继承、组合。有哪些设计模式使用到了继承、组合。 …

【Spring Security】快速入门之案例实操

目录 一、简介 1、什么是安全框架 2、主流的安全框架 3、为什么使用Spring Security 二、引言 1、什么是Spring Security 2、Spring Security工作原理 3、特点 三、快速入门 1、引入依赖 2、配置 3、启动测试 4、配置自定义账号密码 四、Web安全配置类 1.HttpSe…

c++输入输出流和文件操作总结

目录 一、c的输入输出流——> 指的是字节流的数据传送;具有类型安全和可扩展性。 二、流的出入路径 三、c流类库 ①概览 ②标准输出流: ③标准输入流: 四、文件操作(ascii文件和二进制文件) 五、字符串流(或称…

企业数据可视化-亿发数据化管理平台提供商,实现一站式数字化运营

近些年来,国内企业数据化管理升级进程持续加速,以物联网建设、人工智能、大数据和5G网络等新技术的发展,推动了数字经济的蓬勃发展,成为维持经济持续稳定增长的重要引擎。如今许多国内中小型企业纷纷摒弃传统管理模式,…

Json和Xml

一、前言 学习心得&#xff1a;C# 入门经典第8版书中的第21章《Json和Xml》 二、Xml的介绍 Xml的含义&#xff1a; 可标记性语言&#xff0c;它将数据以一种特别简单文本格式储存。让所有人和几乎所有的计算机都能理解。 XML文件示例&#xff1a; <?xml version"1.…

AGV智能搬运机器人-替代人工工位让物流行业降本增效

在当今快速发展的世界中&#xff0c;物流业面临着巨大的挑战&#xff0c;包括提高效率、降低成本和优化工作流程。为了应对这些挑战&#xff0c;一种新型的自动化设备——智能搬运机器人正在崭露头角。本文将通过一个具体的案例来展示富唯智能转运机器人在实际应用中的价值。 案…

Flask登陆后登陆状态及密码的修改和处理

web/templates/common 是统一布局 登录成功 后flask框架服务器默认由login.html进入仪表盘页面index.html(/),该页面的设置在 (web/controllers/user/index.py)&#xff0c;如果想在 该仪表盘页面 将 用户信息 展示出来&#xff0c;就得想办法先获取到 当前用户的 登陆状态。…

【项目】玩具租赁博客测试报告

目录 一、项目背景 二、项目功能 三、功能测试 一、项目背景 玩具租赁系统采用前后端分离的方法来实现&#xff0c;同时使用了数据库来存储相关的数据&#xff0c;同时将其部署到云服务器上。前端主要有十五个页面构成&#xff1a;用户注册、管理员注册、登录页、用户和管理…

1.倒排索引 2.逻辑斯提回归算法

1.倒排索引 https://help.aliyun.com/zh/open-search/retrieval-engine-edition/introduction-to-inverted-indexes 倒排索引&#xff08;Inverted Index&#xff09;是一种数据结构&#xff0c;用于快速查找包含某个特定词或词语的文档。它主要用于全文搜索引擎等应用&#…

Flask 与微信小程序对接

Flask 与微信小程序的对接 在 web/controllers/api中增建py文件&#xff0c;主要是给微信小程序使用的。 web/controllers/init.py # -*- coding: utf-8 -*- from flask import Blueprint route_api Blueprint( api_page,__name__ )route_api.route("/") def ind…

移动端Vant中的Calendar日历增加显示农历(节日、节气)功能

核心&#xff1a; 使用 js-calendar-converter 库实现 npm地址&#xff1a;js-calendar-converter 内部使用原生calendar.js&#xff0c; 中国农历&#xff08;阴阳历&#xff09;和西元阳历即公历互转JavaScript库&#xff0c;具体实现感兴趣的可自行查看其实现源码。 原日…

ElementUI的Table组件行合并上手指南

ElementUI的Table组件行合并 &#xff0c;示例用官网vue3版的文档 <el-table :data"tableData" :span-method"objectSpanMethod" border style"width: 100%; margin-top: 20px"><el-table-column prop"id" label"ID&qu…

【轻松入门】OpenCV4.8 + QT5.x开发环境搭建

引言 大家好&#xff0c;今天给大家分享一下最新版本OpenCV4.8 QT5 如何一起配置&#xff0c;完成环境搭建的。 下载OpenCV4.8并解压缩 软件版本支持 CMake3.13 或者以上版本 https://cmake.org/ VS2017专业版或者以上版本 QT5.15.2 OpenCV4.8源码包 https://github.com/op…

英语学习软件欧路词典 Eudic mac特点说明

欧路词典 Eudic mac是一款英语学习工具&#xff0c;它包含了丰富的英语词汇、短语和例句&#xff0c;并提供了发音、例句朗读、单词笔记等功能。 欧路词典 Eudic mac软件特点 多语种支持&#xff1a;欧路词典支持多种语言&#xff0c;包括英语、中文、日语、法语等等&#xff…

Havenask 分布式索引构建服务 --Build Service

Havenask 是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎&#xff0c;深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内几乎整个阿里的搜索业务。本文针对性介绍了 Havenask 分布式索引构建服务——Build Service&#xff0c;主打稳定、快速、易管理&#xff0c;是在线系…