原标题:Python数据清洗实践

DATA CLEANING WITH PYTHON

作者 | Balogun Omobolaji

翻译 | 酱番梨、祝弟弟基督教

校对 | Pita 审核 | 约翰逊·李加薪 整理 | 立鱼王

https://medium.com/machine-intelligence-team/data-cleaning-with-python-d0ca811d6cdf

注:本文的相关链接请访问文末二维码

引言

“数据科学家们80%的精力消耗在查找、数据清理、数据组织上,只剩于20%时间用于数据分析等。”——IBM数据分析

数据清洗是处理任何数据前的必备环节。在你开始工作前,你应该有能力处理数据缺失、数据不一致或异常值等数据混乱情况。在开始做数据清洗前,需要对Numpy和Pandas库有基本的理解。

数据清洗

数据清洗名如其意,其过程为标识并修正数据集中不准确的记录,识别数据中不可靠或干扰部分,然后重建或移除这些数据。

数据清洗是数据科学中很少提及的一点,因为它没有训练神经网络或图像识别那么重要,但是数据清洗却扮演着非常重要的角色。没有它,机器学习预测模型将不及我们预期那样有效和精准。

下面我将讨论这些不一致的数据:

数据缺失

列值统一处理

删除数据中不需要的字符串

数据缺失

数据缺失原因?

在填写问卷时,人们往往未填全所有必填信息,或用错数据类型。问卷结果中缺失的数据在使用前必须做相应的解释及处理。

下面,我们将看到一份关于不同层次学生入学考试的数据集,包括得分、学校偏好和其他细节。

通常,我们先导入Pandas并读入数据集。

importpandas aspd

data = pd.read_csv( 'Responses.csv')

在需要的地方,你可以用NaN的非标准类型(例:'n/a','na','-')来替代缺失的值。

missing_values= [ 'n/a', 'na', '--']

data =pd.read_csv( 'Responses.csv', na_values = missing_values)

data.head()

得到"District"列缺值统计数

看District列,我们想检测该列是否有空值并统计空值的总数。

data['District'].isnull() .values.any() #Toknowifthereisanymissingvalues

#ReturnsTrue

data['District'].isnull() .sum()

#Returns16

替换全部非数值型值

我们可以用需要的值来替换全部非数值型值,下面先使用14这个值。

data['District'].fillna( 14, inplace = True) #replacingmissing#values

data['District']

替换一个指定的非数值型值

我们也可以替换指定位置的值,下面例子是行索引为3。

data. loc[ 3, 'District'] = 32

# data

使用中位数替换缺失值

我们可以使用非数值型值所在列的中位数进行替换,下列中的中位是为3.5。(补充说明:中位数这里指非数值型值所在列的全部值,按高低排序后找出正中间的一个作为中位数)

median = data[ 'District'].median()

median

data[ 'District'].fillna(median, inplace = True)

data[ 'District']

删除缺值项

如果你只是想简单地排除缺值项,可以用dropna函数配合axis参数进行。缺省情况下,axis=0表示沿横轴(行)删除含有有非数值型字段的任何行。

#Drop any rows whichhave any NaNs

data.dropna()

#Drop columns that have any NaNs

data.dropna(axis=1)

如果数列中超过90%的数据是“非数”,我们将其删除

这是我最近学到的一个有趣的功能。参数 thresh = N要求数列中至少含有N个非数才能得以保存。在将它们视为模型的候选者之前,你只需要具有90%可用功能的记录。

#Only drop columns whichdonot have at least 90% non-NaNs

data.dropna(thresh=int(data.shape[0] * .9), axis=1)

#Returns a data with the shape of 117rows and 8 columns

#Recall that the original data 117rows and 12columns

所以,这意味着4列超过90%的数据相当于“非数”。这些对我们的结果几乎没有影响。

执行上述操作的另一种方法是手动扫描/读取列,并删除对我们的结果影响不大的列。

to_drop = [ 'District', 'School Preferences', 'School Assigned''Will you enroll there?']

data.drop(columns=to_drop, inplace= True)

#we will have the same result as the above

删除字符串中的某些字符

假设我们想要处理一个大型数据集,它包含一些我们不希望包含在模型中的字符串,我们可以使用下面的函数来删除每个字符串的某些字符。

上面的屏幕截图显示了如何从字符串中删除一些字符

soupsubcategory是唯一一个数据类型为'object'的列,所以我们选择了select_dtypes(['object']),我们正在使用lambda函数从该列中的每个

new_dataset = dataset.select_dtypes([‘object’])

dataset[new_dataset.columns] = new_dataset.apply( lambdax: x.str.strip(‘/images’))

print(dataset)

我们可以对我们的数据执行其他一些功能和方法,本文未介绍这些功能和方法。您可以从本课程中了解更多信息。

结论

网络上有大量资源可以帮助您更深入地了解Python for Data Science。以上只是数据科学所需要的一小部分。清理完数据后,您可以在处理数据之前对其进行可视化(数据可视化),并根据结果进行预测。

请查看以下链接,以查找有助于您进行Python数据科学之旅的其他资源:

Pandas文档

Numpy文档

Python数据科学简介。对于那些以前没有数据科学知识的初学者来说,这是一门很棒的课程。

感谢阅读。

https://ai.yanxishe.com/page/TextTranslation/1495返回搜狐,查看更多

责任编辑:

python数据清理的实践总结_Python数据清洗实践相关推荐

  1. Python数据科学-技术详解与商业实践视频教程

    Python数据科学-技术详解与商业实践(八大案例) 网盘地址:https://pan.baidu.com/s/13QrR_5Er6LgWCWzSb7qOrQ 提取码:s7vw 备用地址(腾讯微云): ...

  2. python数据清理的实践总结_python 数据的清理行为实例详解

    python 数据的清理行为实例详解 数据清洗主要是指填充缺失数据,消除噪声数据等操作,主要还是通过分析"脏数据"产生的原因和存在形式,利用现有的数据挖掘手段去清洗"脏数 ...

  3. Python数据清理终极指南(2020版)

    作者 | Lianne & Justin 译者 | 陆离 出品 | AI科技大本营(ID:rgznai100) 一般来说,我们在拟合一个机器学习模型或是统计模型之前,总是要进行数据清理的工作. ...

  4. 2020 版 Python 数据清理终极指南!

    作者 | Lianne & Justin 译者 | 陆离 出品 | AI科技大本营(ID:rgznai100) 一般来说,我们在拟合一个机器学习模型或是统计模型之前,总是要进行数据清理的工作. ...

  5. 最全Python数据清理终极指南

    一般来说,我们在拟合一个机器学习模型或是统计模型之前,总是要进行数据清理的工作.因为没有一个模型能用一些杂乱无章的数据来产生对项目有意义的结果. 数据清理或清除是指从一个记录集.表或是数据库中检测和修 ...

  6. python数据加载常规教程_Python加载数据的5种不同方式(收藏)

    数据是数据科学家的基础,因此了解许多加载数据进行分析的方法至关重要.在这里,我们将介绍五种Python数据输入技术,并提供代码示例供您参考. 作为初学者,您可能只知道一种使用p andas.read_ ...

  7. python数据科学速查表_Python数据科学速查表:中级

    python数据科学速查表 The printable version of this cheat sheet 该备忘单的可打印版本 The tough thing about learning da ...

  8. python数据预处理 重复行统计_Python数据分析之数据预处理(数据清洗、数据合并、数据重塑、数据转换)学习笔记...

    1. 数据清洗 1.1 空值和缺失值的处理 ​空值一般表示数据未知.不适用或将在以后添加数据.缺失值是指数据集中某个或某些属性的值是不完整的. ​一般空值使用None表示,缺失值使用NaN表示 1.1 ...

  9. python数据科学指南是什么_Python数据科学实践 | Spyder入门

    Spyder入门 01 Spyder--Python编程的"热带雨林" Spyder是一个用于科学计算的使用Python编程语言的集成开发环境(IDE).它结合了综合开发工具的高级 ...

最新文章

  1. python导入txt为dataframe-python批量读取txt文件为DataFrame的方法
  2. 基于ArcSDE、Oralce空间数据库冷备份与恢复
  3. led大屏按实际尺寸设计画面_“差评”不断的LED户外大屏,到底缺了什么?
  4. 工业交换机的性能优势有哪些?
  5. Linux学习:第一章-Linux简介
  6. JAVA中的native
  7. java读取同包文件_Java实现从jar包中读取指定文件的方法
  8. 没人说得清深度学习的原理 只是把它当作一个黑箱来使
  9. axios post封装对象到后端_axios 使用post方式传递参数,后端接受不到
  10. Sports Nutrition
  11. usermod命令,用户密码管理,makpasswd
  12. centos挂载ntfs文件系统
  13. 使用 T4 文本模板生成设计时代码
  14. 航天金税502设置模拟环境步骤
  15. C语言字母大小写转换
  16. 专利检索常用的十八个网站
  17. MSP430F149;一、TIMEA
  18. Teamviewer检测为商业用途的解决方案
  19. memcached启动脚本
  20. Router-Link详解

热门文章

  1. 如何修改Github已经提交的commit里的提交者用户名和提交者邮箱
  2. SAP CDS view如何取得当前系统日期和系统时间戳
  3. Angular rxjs里自定义operator的使用
  4. 使用SAP CRM Application Enhancement Tool创建表格类型的扩展字段
  5. where is language of sap.ui.getCore().getConfiguration set - locale
  6. sap.ui.core.ComponentContainer
  7. Value 'EN' violates facet information 'maxlength=1'
  8. when and where is createContent called
  9. ABAP web service运行时的细节调试
  10. 在SAP云平台ABAP编程环境上编写第一段ABAP程序