详解16个Pandas函数,让你的 “数据清洗” 能力提高100倍!

python数据清洗的三个常用的处理方式! 另外一种则是部分相同指的是某个列的数据是相同的需要清洗。从列名称的打印结果发现’姓名’这一列是存在空格的,我们直接查找列名称是找不到的,因为需要对列名称的空格进行数据清洗。返回的每一个单元格数据结果为False则代表这个单元格的数据是没有缺失的,或者也可以使用notnull来反向查看。准备一下需要处理的脏数据,这里选用的是excel数据,也可以选择其他的格式数据,下面是源数据截图。因为最后一行和第一行的数据是完全相同的,因此最后一行的数据已经被清洗掉了。 阅读详情

本文介绍

你有没有这样一种感觉,为什么到自己手上的数据,总是乱七八糟?

作为一个数据分析师来说,数据清洗是必不可少的环节。有时候由于数据太乱,往往需要花费我们很多时间去处理它。因此掌握更多的数据清洗方法,会让你的能力调高100倍。

本文基于此,讲述Pandas中超级好用的str矢量化字符串函数,学了之后,瞬间感觉自己的数据清洗能力提高了。

1个数据集,16个Pandas函数

数据集是黄同学精心为大家编造,只为了帮助大家学习到知识。数据集如下:

import pandas as pd

df ={'姓名':[' 黄同学','黄至尊','黄老邪 ','陈大美','孙尚香'],
     '英文名':['Huang tong_xue','huang zhi_zun','Huang Lao_xie','Chen Da_mei','sun shang_xiang'],
     '性别':['男','women','men','女','男'],
     '身份证':['463895200003128433','429475199912122345','420934199110102311','431085200005230122','420953199509082345'],
     '身高':['mid:175_good','low:165_bad','low:159_bad','high:180_verygood','low:172_bad'],
     '家庭住址':['湖北广水','河南信阳','广西桂林','湖北孝感','广东广州'],
     '电话号码':['13434813546','19748672895','16728613064','14561586431','19384683910'],
     '收入':['1.1万','8.5千','0.9万','6.5千','2.0万']}
df = pd.DataFrame(df)
df

结果如下:

观察上述数据,数据集是乱的。接下来,我们就用16个Pandas来对上述数据,进行数据清洗。

① cat函数:用于字符串的拼接
df["姓名"].str.cat(df["家庭住址"],sep='-'*3)

结果如下:

② contains:判断某个字符串是否包含给定字符
df["家庭住址"].str.contains("广")

结果如下:

③ startswith/endswith:判断某个字符串是否以…开头/结尾
# 第一个行的“ 黄伟”是以空格开头的
df["姓名"].str.startswith("黄") 
df["英文名"].str.endswith("e")

结果如下:

④ count:计算给定字符在字符串中出现的次数
df["电话号码"].str.count("3")

结果如下:

⑤ get:获取指定位置的字符串
df["姓名"].str.get(-1)
df["身高"].str.split(":")
df["身高"].str.split(":").str.get(0)

结果如下:

⑥ len:计算字符串长度
df["性别"].str.len()

结果如下:

⑦ upper/lower:英文大小写转换
df["英文名"].str.upper()
df["英文名"].str.lower()

结果如下:

⑧ pad+side参数/center:在字符串的左边、右边或左右两边添加给定字符
df["家庭住址"].str.pad(10,fillchar="*")      # 相当于ljust()
df["家庭住址"].str.pad(10,side="right",fillchar="*")    # 相当于rjust()
df["家庭住址"].str.center(10,fillchar="*")

结果如下:

⑨ repeat:重复字符串几次
df["性别"].str.repeat(3)

结果如下:

⑩ slice_replace:使用给定的字符串,替换指定的位置的字符
df["电话号码"].str.slice_replace(4,8,"*"*4)

结果如下:

⑪ replace:将指定位置的字符,替换为给定的字符串
df["身高"].str.replace(":","-")

结果如下:

⑫ replace:将指定位置的字符,替换为给定的字符串(接受正则表达式)
  • replace中传入正则表达式,才叫好用;

  • 先不要管下面这个案例有没有用,你只需要知道,使用正则做数据清洗多好用;

df["收入"].str.replace("\d+\.\d+","正则")

结果如下:

⑬ split方法+expand参数:搭配join方法功能很强大
# 普通用法
df["身高"].str.split(":")
# split方法,搭配expand参数
df[["身高描述","final身高"]] = df["身高"].str.split(":",expand=True)
df
# split方法搭配join方法
df["身高"].str.split(":").str.join("?"*5)

结果如下:

⑭ strip/rstrip/lstrip:去除空白符、换行符
df["姓名"].str.len()
df["姓名"] = df["姓名"].str.strip()
df["姓名"].str.len()

结果如下:

⑮ findall:利用正则表达式,去字符串中匹配,返回查找结果的列表
  • findall使用正则表达式,做数据清洗,真的很香!

df["身高"]
df["身高"].str.findall("[a-zA-Z]+")

结果如下:

⑯ extract/extractall:接受正则表达式,抽取匹配的字符串(一定要加上括号)
df["身高"].str.extract("([a-zA-Z]+)")
# extractall提取得到复合索引
df["身高"].str.extractall("([a-zA-Z]+)")
# extract搭配expand参数
df["身高"].str.extract("([a-zA-Z]+).*?([a-zA-Z]+)",expand=True)

结果如下:

今天的文章,就为你讲述到这里,希望能够对你有所帮助。

年度爆款文案

点这里,直达菜鸟学PythonB站!!
25年PINN创新点大盘点! 在科研论文的激烈角逐中,想轻松产出高含金量成果?物理信息神经网络(PINN)堪称“宝藏研究方向”,是冲击高分区论文的绝佳赛道!对于渴望发表优质论文的科研伙伴,这三大研究路径值得重点关注。首先是自适应PINN,在PINN训练过程中,物理方程与实测数据间的矛盾常常导致权重调节困难,而恰好直击这一痛点,是极具价值的研究方向。其次,同样前景广阔,传统多物理场同时训练效果欠佳,如今分阶段训练方法脱颖而出,成效显著且竞争较小。最后,探索及多任务学习等技术的融合,能实现优势叠加,碰撞出创新火花。 阅读详情

相关推荐

利用腾讯云轻量服务器快速搭建网站CDN

腾讯云的轻量最近在主机和站长中间可谓是占尽来风头,优秀的线路,低廉的价格使得越来越多的人开始使用腾讯云的轻量级服务器来部署应用。由于腾讯云轻量服务器的海外服务器电信走的是CN2GIA线路带宽30m挺适合做CDN的,我就记录一下如何利用腾讯云香港的轻量服务器搭建一个CDN。 购买服务器 首先选购服务器,最近腾讯云在做活动,力度很大国内备案用户可以选用国内的服务器最低128元/年,未备案的可以选用香港或者新加坡的服务器。 购买链接 服务器系统选Debian、Ubuntu、centos都可以 一键脚

demo_top的博客 2566

python语句如何换行和字符串太长如何换行

python语句如何换行和字符串太长如何换行

cnds123的专栏 3万+

基于STM32F4通用定时器实现Livox激光雷达PPS硬件同步的工程实践

本文详细介绍了基于STM32F4通用定时器实现Livox激光雷达PPS硬件同步的工程实践。通过分析PPS信号的时序要求,对比不同定时器的特性,并提供完整的代码实现与调试技巧,帮助开发者解决多传感器数据融合中的时间同步问题。实测表明,该方案在车载环境中稳定运行超过2000小时。

weixin_30540691的博客 328

python打印自动换行如何解决_解决python DataFrame 打印结果不换行问题

解决python DataFrame 打印结果不换行问题如下所示:加入代码:pd.set_option('display.width', 5000)补充知识:Python 实现不换行打印字符的3种简单方法Python2.7中,执行完print后,会自动换行,如下代码会打印:abc\n123\n(其中\n代表换行)print ('abc')print ('123')如何实现不换行打印字符呢,下面介绍...

weixin_39932692的博客 3598

深度学习---双层神经网络中矩阵的运算及其含义记录

深度学习---双层神经网络中矩阵的运算及其含义记录神经网络的正向传播与反向传播正向传播第一层的权重矩阵第一层的输入矩阵Z^1^ = W^1^X^1^ + b^1^A^1^ = σ(Z^1^)第二层的权重矩阵第二层的输入矩阵Z^2^ = W^2^A^1^ + b^2^反向传播dz^2^ = A^2^ - Ydw^2^ = 1/n dz^2^A^1T^db^2^ = 1/n np.sum(dz^2...

qq_43228441的博客 3748

信息安全-入侵检测技术原理与应用

入侵检测技术原理与应用、入侵检测概述、入侵检测技术、入侵检测系统组成与分类、入侵检测系统主要产品与技术指标、入侵检测系统应用

我的个人博客 1万+

python中长字符串换行的三种方法

python中长字符串换行的三种方法: 1、使用单引号('''字符串''')将要换行的字符串括起来 2、使用双引号将长字符串括起来 3、在要换行的地方使用“\”

weixin_45587319的博客 3万+

LabVIEW与VisionMaster融合开发:从封装避坑到高效集成的实战指南

本文为LabVIEW开发者提供了一套与海康VisionMaster融合开发的实战指南。针对直接调用SDK时遇到的程序集加载失败和面向对象编程冲突等核心障碍,文章详细介绍了通过C#进行“浅封装”的解决方案,包括封装显示控件和核心功能类,并给出了在LabVIEW中高效集成、调用及资源管理的最佳实践,旨在帮助开发者稳定、高效地集成机器视觉功能。

weixin_29210727的博客 157

python使用_pandas_文本字符串处理

1. 字符串处理 1.1 对某列的所有字符串计算长度(len) 1.2 拆分字符串,并将结果分列展示 1.3 去除空格、换行符、字符串'\xa0'等 1.4 需要多个分隔符对字符串进行切分 通过示例代码实现上述功能: 构造示例数据: #!/usr/bin/python3 # -*- coding: utf-8 -*- import pandas as pd import ...

alex.deng的博客 995

【短距离通信】【WiFi】精讲WiFi 6E协议!图解超赞超详细!!!

802.11ax(HE,HighEfficiency) (Wi-Fi 6E):6G频段共有1200MHz的频谱给到WiFi 6E使用,可用于从5.925GHz到7.125GHz。WiFi将可以访问59个20MHz信道,29个40MHz信道14个80MHz信道和7个160MHz信道。这不仅代表可以有很多频道,还可以代表可以解锁更高的数据速率。因为 802.11ax 标准(Wi-Fi 6)也在 2.4GHz 和 5GHz 频段运行,所以 6GHz 频段的 Wi-Fi 将被命名为 Wi-Fi 6E。

风云说通信 2347

小波变换(深入浅出)

小波变换

weixin_46713695的博客 3万+

用了的都说好 | 详解16个Pandas函数,让你的 “数据清洗” 能力提高100倍!

真的超级棒!

数据分析与统计学之美 1613

YOLOv11知识蒸馏实战:让小模型拥有大模型90%精度,速度提升3倍的终极教程

在self.alpha = alpha # 蒸馏损失权重self.temperature = temperature # 温度系数,控制分布平滑度# 输出分布蒸馏(KL散度损失)# 中间特征蒸馏(MSE损失,对齐中间层特征)# 总蒸馏损失知识蒸馏是YOLOv11在“小模型高性能部署”场景的“破局之法”——它让小模型能“站在大模型的肩膀上”,兼具速度与精度。从损失函数定义到多阶段训练,再到实战落地,本教程已为你铺就了一条清晰的路径。

m0_64661770的博客 803

详解 16 个 Pandas 函数,让你的 “数据清洗” 能力提高 100 倍!

【优快云 编者按】pandas对字符串的处理进行了加强,处理的单位变成了字符串的数组,更加高效,而对于缺失值,pandas中的矢量化字符串函数还能够自动跳过。作者 | 黄伟呢 ...

优快云资讯 1155

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

详解16个pandas函数,让你的 “数据清洗” 能力提高100倍!

本文介绍 你有没有这样一种感觉,为什么到自己手上的数据,总是乱七八糟?作为一个数据分析师来说,数据清洗是必不可少的环节。有时候由于数据太乱,往往需要花费我们很多时间去处理它。因此掌握更多的...

lsxxx2011的专栏 217

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

详解16个Pandas函数,让你的“数据清洗”能力提高

本文介绍 你有没有这样一种感觉,为什么到自己手上的数据,总是乱七八糟? 作为一个数据分析师来说,数据清洗是必不可少的环节。有时候由于数据太乱,往往需要花费我们很多时间去处理它。因此掌握更多的数据清洗方法,会让你的能力调高100倍。 本文基于此,讲述Pandas中超级好用的str矢量化字符串函数,学了之后,瞬间感觉自己的数据清洗能力提高了。 1个数据集,16个Pandas函数 数据集是黄同学精心为大家编造,只为了帮助大家学习到知识。数据集如下: importpandasaspd ...

pyjishu的博客 533

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

总结100个Pandas中序列的实用函数

在分享《》后有很多读者朋友给我私信,希望分享一篇关于Pandas模块中序列的各种常有函数的使用。经过一段时间的整理,本期将分享我认为比较常规的100个实用函数,这些函数大...

lsxxx2011的专栏 459

盘点Pandas 的100 个常用函数

本期将分享我认为比较常规的100个实用函数,这些函数大致可以分为六类,分别是统计汇总函数、数据清洗函数、数据筛选、绘图与元素级运算函数、时间序列函数和其他函数。Plus,...

算法channel 752

astype函数_总结100个Pandas中序列的实用函数

在分享《Pandas模块,我觉得掌握这些就够用了!》后有很多读者朋友给我私信,希望分享一篇关于Pandas模块中序列的各种常有函数的使用。经过一段时间的整理,本期将分享我认为比较常规的100个实用函数,这些函数大致可以分为六类,分别是统计汇总函数、数据清洗函数、数据筛选、绘图与元素级运算函数、时间序列函数和其他函数。❆统计汇总函数数据分析过程中,必然要做一些数据的统计汇总工作,那么对于这...

weixin_39895995的博客 347

astype函数_盘点Pandas 的100 个常用函数

本期将分享我认为比较常规的100个实用函数,这些函数大致可以分为六类,分别是统计汇总函数、数据清洗函数、数据筛选、绘图与元素级运算函数、时间序列函数和其他函数。Plus,在原作者基础上,我修复2处小瑕疵,希望把最完美的文章展示给大家。❆统计汇总函数数据分析过程中,必然要做一些数据的统计汇总工作,那么对于这一块的数据运算有哪些可用的函数可以帮助到我们呢?具体看如下几张表。importpa...

weixin_39821189的博客 1191

如何让Pandas操作加快100倍?

今天我们讨论三种在 Python 数据分析库 Pandas 中加速运算的方法。 Pandas 对于处理存储在电子表格和数据库中的表格数据非常有用。它提供了许多用于操作和转换数据帧或结构数据的功能。

《人工智能原理与实践》作者 1653
上一篇: 功能强大、文档健全的开源 Python 绘图库 Plotly,手把手教你用!
下一篇: 如何赏樱花?我用Python帮你做个动态路线规划图
菜鸟学Python
博客等级 码龄9年 8088粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值