#yyds干货盘点#Pandas数据清洗实用指南

来西瓜 2021-11-25 10:33:09
编程语言 Python 数据分析 数据 数据清洗

Pandas 数据清洗实用指南

      数据科学项目中最耗时的部分是数据清洗和准备。幸好有许多强大的工具可以加快此过程。其中之一是 Pandas,它是一个被广泛使用的 Python 数据分析库。在这篇文章中,将介绍一个典型的使用Pandas进行数据清洗的过程,因为通过实践能更容易理解什么是数据清洗。本文由以下四个部分组成:

      1)创建DataFrame

      2)数据概览

      3)处理缺失值

      4)选择数据

      当然,首先需要导入两个库:

      import pandas as pd

      import numpy as np

创建DataFrame

      在现实生活中,大多数情况下是从文件中读取数据,而不是创建 DataFrame。 

#yyds干货盘点#Pandas数据清洗实用指南_数据类型

#yyds干货盘点#Pandas数据清洗实用指南_数据_02

数据概览

      Pandas的describe函数提供数值(int或float)列的汇总统计信息。 它计算值的数量并显示平均值、标准值、最小值和最大值以及 25%、50% 和 75% 的分位数。

      df.describe() 

#yyds干货盘点#Pandas数据清洗实用指南_数据类型_03

      尽管所有列的行数相同,但列 d 的计数不同,因为 describe 函数不计算 NaN(缺失)值。value_counts() 显示列中出现次数的值:

      df.c.value_counts()

#yyds干货盘点#Pandas数据清洗实用指南_数据_04

      value_counts() 不计算 NaN(缺失)值。

      我们还应该检查数据类型并在我们的分析中考虑它们。 某些功能只能对某些数据类型执行。 我们可以使用 dtypes 轻松检查数据类型:

      df.dtypes

#yyds干货盘点#Pandas数据清洗实用指南_缺失值_05

      ‘d’ 和 ‘e’ 列都有整数,但 ‘d’ 列的数据类型是浮点数。 原因是 d 列中的 NaN 值。 NaN 值被认为是浮点数,因此该列中的整数值被向上转换为浮点数据类型。 

处理缺失值

      处理缺失值是数据清理和准备过程的重要组成部分,因为现实生活中几乎所有数据都带有一些缺失值。在处理缺失值之前,我们需要检查DataFrame中缺失值的数量。这一步很重要,因为行或列中缺失值的比率在如何处理它们方面起着关键作用。isna() 检查条目是否为 NaN(缺失)。与 sum 方法结合使用时,它会给出每列中缺失值的总数:

      df.isna().sum()

#yyds干货盘点#Pandas数据清洗实用指南_数据分析_06

      与 any() 结合使用时,它返回一个布尔值,指示该列中是否有任何缺失值:

      df.isna().any()

#yyds干货盘点#Pandas数据清洗实用指南_数据清洗_07

      处理缺失值的方法有很多种,但对于每项任务都没有一个“最佳”选择。 它高度依赖于数据的任务和特征。 我将在这里列出几种不同的处理缺失值的方法。

      我们可以用该列的最大值替换该列中的缺失值:

      df.d.fillna(df.d.max(), inplace=True)

 #yyds干货盘点#Pandas数据清洗实用指南_数据类型_08

 #yyds干货盘点#Pandas数据清洗实用指南_数据_09      

      inplace参数一定要设置为True,否则变更将不生效。

      根据情况,如果缺失值太多,我们可能会决定删除一行或一列。 在没有先验知识的情况下填充许多缺失值可能会对我们的分析产生负面影响。 DataFrame 中有 5 列,如果只想保留至少具有 4 个值的样本(行), 换句话说,至少有 2 个缺失值的行将被删除。我们可以使用带有 thresh 参数的 dropna 函数。 Axis 参数用于表示行 (0) 或列 (1)。

      df.dropna(thresh=4, axis=0, inplace=True)

#yyds干货盘点#Pandas数据清洗实用指南_数据_10

#yyds干货盘点#Pandas数据清洗实用指南_缺失值_11     

      thresh 参数表示行或列不需要删除的非缺失值的数量。

      我们还可以用之前或之后的值填充缺失值。 这种方法多用于时间序列数据。方法参数与’ffill’(向前传播)或‘bfill’(向后传播)参数一起使用:

      df.b.fillna(method=‘ffill’, inplace=True)

#yyds干货盘点#Pandas数据清洗实用指南_数据分析_12 

#yyds干货盘点#Pandas数据清洗实用指南_数据分析_13

      我们还可以用该列中最常见的值填充缺失值。 Value_counts() 根据值在列中的出现次数对值进行排序。 所以我们可以使用 value_counts() 的索引来得到最常见的值:

      df.c.fillna(df.c.value_counts().index[0], inplace=True)

#yyds干货盘点#Pandas数据清洗实用指南_数据分析_14  

#yyds干货盘点#Pandas数据清洗实用指南_数据类型_15


选择数据

      iloc 和 loc 允许选择 DataFrame 的一部分。iloc通过位置选择,loc通过标签选择。

      1)选择第二行

      df.iloc[1] 

#yyds干货盘点#Pandas数据清洗实用指南_数据_16

      2)选择第一行第二列的值

      df.iloc[0, 1] 

#yyds干货盘点#Pandas数据清洗实用指南_数据分析_17

      3)选择所有行的第三列

      df.iloc[:, 2] 

#yyds干货盘点#Pandas数据清洗实用指南_数据_18

      4)选择前两行的第二列

      df.iloc[:2, 1] 

#yyds干货盘点#Pandas数据清洗实用指南_缺失值_19

      5)选择前两行的’b’列

      df.loc[:2, ‘b’]

 #yyds干货盘点#Pandas数据清洗实用指南_缺失值_20


结论

      我在这里介绍的只是 Pandas 在数据分析过程中的一小部分能力,但肯定会对您的项目有用。 试图一次学习所有内容是不合理的。 相反,学习小块并通过实践吸收信息将帮助您建立全面的数据分析技能。




版权声明
本文为[来西瓜]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_14857544/4682880

  1. Sorting out the learning route for Python beginners
  2. The 6-line Python code uses the pdf2docx module converter object to convert PDF into docx file
  3. Batch compression of picture files using Python
  4. Using Python to write djikstra algorithm for robot path planning
  5. python实现手机号获取短信验证码 | 对接打码平台
  6. Detailed explanation of Euler Rodriguez code in Python
  7. Prove that angular displacement is not a vector with Python
  8. Using Python program to deeply understand homogeneous transfer matrix t
  9. Triple product formula of vector and its proof (with Python code)
  10. Derivation of differential formula of DH matrix using Python
  11. Python openpyxl operation on Excel (get the total number of columns, get the value of a row, get the value of a column, and set the cell value)
  12. Realizing Excel data filtering and data matching with Python
  13. Python reads and writes files
  14. Four scenarios of processing Excel files with Python
  15. Python converts dictionary to excel
  16. Python implements file reading and writing
  17. Basic Python syntax -- functions
  18. Python learning thinking
  19. Python basic syntax -- Boolean operation, break, continue, pass
  20. Python basic syntax -- loop
  21. Basic Python syntax -- lists, dictionaries
  22. Python basic syntax -- conditional judgment, input ()
  23. Python first experience - efficient office, data analysis, crawler
  24. Modulenotfounderror: no module named 'Django summernote details
  25. Key points for Django to make personal blog website
  26. Path setting of templates in Django settings
  27. Leetcode 1611. Minimum one bit operations to make integers Zero (Python)
  28. Directory C: \ users \ a \ desktop \ Django_ The blog master is registered as the GIT root, but no git repository details are found there
  29. Django. Core. Exceptions. Improveconfigured: application labels aren't unique, duplicates: admin
  30. How to verify that Django has created the project details correctly
  31. How to create a database when using Django to construct a website
  32. The solution of using Django framework to create project in Windows system
  33. Running Python virtual environment on win10 system to execute ll_ Env \ scripts \ activate: unable to load file elaboration scheme
  34. Detailed explanation of constructing virtual environment with Django in Python 3
  35. Python implementation of affine cipher
  36. RC4 Python implementation
  37. Simple: Python_ Automatic body temperature clock
  38. 用python把两个csv中的日期的列提出年,做出新的一列,再把两个csv表格按照新做出的日期这列和ID号合并为一个表。
  39. python中类实例化后,其对象无法被其他模块调用方法
  40. [JSON] - Python creates JSON file format
  41. Utilisez Python pour proposer l'année de la colonne de date dans les deux CSV, faire une nouvelle colonne, puis combiner les deux tableaux CSV en un seul tableau avec la colonne de date et le numéro d'identification.
  42. 关于#python#的问题,请各位专家解答!
  43. ***
  44. ***
  45. 關於#python#的問題,請各比特專家解答!
  46. S'il vous plaît répondre aux questions de Python!
  47. About the import of Python class
  48. Magic Python property decorator: 1 line of code makes Python methods become properties in seconds
  49. Python 音频调整音量(附代码) | Python工具
  50. Python programming ideas [series of articles]
  51. Python crawler programming idea (67): modify nodes using pyquery
  52. Python crawler programming idea (66): using pyquery to obtain node information
  53. Python crawler programming idea (65): find nodes using pyquery
  54. Python crawler programming idea (64): using CSS selectors in pyquery
  55. Python crawler programming idea (63): basic knowledge of pyquery
  56. Python crawler programming idea (62): project practice: capturing cool dog online red song list
  57. Python crawler programming idea (61): project practice: capturing rental information
  58. Python crawler programming idea (60): get CSS selector code through browser
  59. Python crawler programming idea (58): nested selection nodes with beautiful soup CSS selectors
  60. Python crawler programming idea (56): find method of beautiful soup method selector