原作 Kin Lim Lee
乾明 编译整理
量子位 出品 | 公众号 QbitAI

数据清洗,是进行数据分析和使用数据训练模型的必经之路,也是最耗费数据科学家/程序员精力的地方。

这些用于数据清洗的代码有两个优点:一是由函数编写而成,不用改参数就可以直接使用。二是非常简单,加上注释最长的也不过11行。

在介绍每一段代码时,Lee都给出了用途,也在代码中也给出注释。

大家可以把这篇文章收藏起来,当做工具箱使用。

涵盖8大场景的数据清洗代码

这些数据清洗代码,一共涵盖8个场景,分别是:

删除多列、更改数据类型、将分类变量转换为数字变量、检查缺失数据、删除列中的字符串、删除列中的空格、用字符串连接两列(带条件)、转换时间戳(从字符串到日期时间格式)

删除多列

在进行数据分析时,并非所有的列都有用,用df.drop可以方便地删除你指定的列。

def drop_multiple_col(col_names_list, df): AIM    -> Drop multiple columns based on their column names INPUT  -> List of column names, dfOUTPUT -> updated df with dropped columns ------df.drop(col_names_list, axis=1, inplace=True)return df

转换数据类型

当数据集变大时,需要转换数据类型来节省内存。

def change_dtypes(col_int, col_float, df): AIM    -> Changing dtypes to save memoryINPUT  -> List of column names (int, float), dfOUTPUT -> updated df with smaller memory  ------df[col_int] = df[col_int].astype( int32 )df[col_float] = df[col_float].astype( float32 )

将分类变量转换为数值变量

一些机器学习模型要求变量采用数值格式。这需要先将分类变量转换为数值变量。同时,你也可以保留分类变量,以便进行数据可视化。

def convert_cat2num(df):# Convert categorical variable to numerical variablenum_encode = { col_1  : { YES :1,  NO :0},col_2   : { WON :1,  LOSE :0,  DRAW :0}}  df.replace(num_encode, inplace=True)  

检查缺失数据

如果你要检查每列缺失数据的数量,使用下列代码是最快的方法。可以让你更好地了解哪些列缺失的数据更多,从而确定怎么进行下一步的数据清洗和分析操作。

def check_missing_data(df):# check for any missing data in the df (display in descending order)return df.isnull().sum().sort_values(ascending=False)

删除列中的字符串

有时候,会有新的字符或者其他奇怪的符号出现在字符串列中,这可以使用df[‘col_1’].replace很简单地把它们处理掉。

def remove_col_str(df):# remove a portion of string in a dataframe column - col_1df[ col_1 ].replace( , , regex=True, inplace=True)# remove all the characters after &# (including &#) for column - col_1df[ col_1 ].replace(  &#.* , , regex=True, inplace=True)

删除列中的空格

数据混乱的时候,什么情况都有可能发生。字符串开头经常会有一些空格。在删除列中字符串开头的空格时,下面的代码非常有用。

def remove_col_white_space(df):# remove white space at the beginning of string df[col] = df[col].str.lstrip()

用字符串连接两列(带条件)

当你想要有条件地用字符串将两列连接在一起时,这段代码很有帮助。比如,你可以在第一列结尾处设定某些字母,然后用它们与第二列连接在一起。

根据需要,结尾处的字母也可以在连接完成后删除。

def concat_col_str_condition(df):# concat 2 columns with strings if the last 3 letters of the first column are  pilmask = df[ col_1 ].str.endswith( pil , na=False)col_new = df[mask][ col_1 ] + df[mask][ col_2 ]col_new.replace( pil ,    , regex=True, inplace=True)  # replace the  pil  with emtpy space

转换时间戳(从字符串到日期时间格式)

在处理时间序列数据时,我们很可能会遇到字符串格式的时间戳列。

这意味着要将字符串格式转换为日期时间格式(或者其他根据我们的需求指定的格式) ,以便对数据进行有意义的分析。

def convert_str_datetime(df): AIM    -> Convert datetime(String) to datetime(format we want)INPUT  -> dfOUTPUT -> updated df with new datetime format ------df.insert(loc=2, column= timestamp , value=pd.to_datetime(df.transdate, format= %Y-%m-%d %H:%M:%S.%f )) 

原文链接

https://towardsdatascience.com/the-simple-yet-practical-data-cleaning-codes-ad27c4ce0a38

AI学习路线和优质资源,在后台回复"AI"获取

代码工具 | 数据清洗,试试这 8套Python代码相关推荐

  1. 浪漫的python代码_七夕,最浪漫的Python代码送给陷入爱河的Python男同胞

    七夕,最浪漫的Python代码送给陷入爱河的Python男同胞 image.gif ​ 三句话情书,我们听过.如何用python写一段浪漫的代码?可以是简短有韵味的情书式, 也欢迎冗长而效果拔群的万行 ...

  2. python代码编写工具_编写更好的Python代码的终极指南

    python代码编写工具 Despite its 尽管它 downsides, Python remains the king of today's programming world. Its ve ...

  3. 计算器百分号如何用代码实现_如何用 100 行 Python 代码实现新闻爬虫?这样可算成功?...

    每天我都要坐地铁上班,而地铁里信号差.但我希望在坐地铁的时候读些新闻,于是就写了下面这个新闻爬虫.我并没有打算做很漂亮的应用,所以只完成了原型,它可以满足我最基本的需求.其思路很简单: 找到新闻源:用 ...

  4. 随机森林分类算法python代码_随机森林的原理及Python代码实现

    原标题:随机森林的原理及Python代码实现 最近在做kaggle的时候,发现随机森林这个算法在分类问题上效果十分的好,大多数情况下效果远要比svm,log回归,knn等算法效果好.因此想琢磨琢磨这个 ...

  5. 六行python代码的爱心曲线公式_六行python代码的爱心曲线-Go语言中文社区

    前些日子在做绩效体系的时候,遇到了一件囧事,居然忘记怎样在Excel上拟合正态分布了,尽管在第二天重新拾起了Excel中那几个常见的函数和图像的做法,还是十分的惭愧.实际上,当时有效偏颇了,忽略了问题 ...

  6. python在哪写代码-python的代码写在哪里,怎么样运行python代码

    1. python的代码写在哪里 你有两种方式写python代码,他们针对不同的应用场景在python交互式解释器里写代码 在编辑器里写代码 在python交互式解释器里,你可以写简单的代码,尽管复杂 ...

  7. python用一行代码编写一个回声程序_一行python代码实现树结构

    树结构是一种抽象数据类型,在计算机科学领域有着非常广泛的应用.一颗树可以简单的表示为根, 左子树, 右子树. 而左子树和右子树又可以有自己的子树.这似乎是一种比较复杂的数据结构,那么真的能像我们在标题 ...

  8. html代码大全(很全的)_5行Python代码就能爬取 3000+ 上市公司的信息?

    前言 入门爬虫很容易,几行代码就可以,可以说是学习 Python 最简单的途径. 刚开始动手写爬虫,你只需要关注最核心的部分,也就是先成功抓到数据,其他的诸如:下载速度.存储方式.代码条理性等先不管, ...

  9. 决策树原理实例(python代码实现)_决策树原理实例(python代码实现)

    决策数(Decision Tree)在机器学习中也是比较常见的一种算法,属于监督学习中的一种.看字面意思应该也比较容易理解,相比其他算法比如支持向量机(SVM)或神经网络,似乎决策树感觉"亲 ...

最新文章

  1. Ubuntu下Qt配置Opencv
  2. 阿里云短信发送触发天级流量及解决办法
  3. 《从零开始学Swift》学习笔记(Day 42)——构造函数调用规则
  4. Intel Realsense D435 python (Python Wrapper)examples 官方案例汇总
  5. hihoCoder 1227 2015 北京网络赛 A题
  6. windows 9X, 2000, xp所有版本注册表设置(1)
  7. Java区间拆分子集求和,对列表中的数字子集求和
  8. NLP --- 条件随机场CRF详解
  9. noip 2010 数字统计
  10. c#中ToString(yyyyMMdd) 与ToString(yyyymmdd)区别
  11. 团队作业3 需求分析与系统设计
  12. 帆软报表决策系统自定义登录界面 使用验证码登录 教程一
  13. java地图 热力图,Spring Boot+高德地图热力图静态数据展示
  14. css常见定位、居中方案
  15. 物联网智能家居系统解决方案
  16. Spring Cloud Gateway(一)为什么用网关、能做什么、为什么选择Gateway、谓词工厂、过滤器配置
  17. ARIMA模型的拖尾截尾问题
  18. SQL DDM和DML
  19. matlab 环形检测,用matlab模拟环形磁铁的磁场分布详解.doc
  20. 产品沉思录 #Vol.20200425:所谓常识

热门文章

  1. Nexus Repository Manager 3.0 发布
  2. 【转】apache常用配置
  3. pthreads 的学习
  4. 简单ThreadPool实现
  5. LeetCode实战:有效的括号
  6. 【HDU】1251统计难题 (字典树:二维数组,结构体数组,链表,map)
  7. 【ACM】杭电OJ 2063
  8. 【Python】turtle库的小应用
  9. 脚本征集大赛开启啦!100%有奖!
  10. 这25条极简Python代码,你还不知道