当前位置:   article > 正文

Python数据分析入门(十):数据清洗和准备_数据分析:python爬虫、数据清洗和数据可视化 第十章

数据分析:python爬虫、数据清洗和数据可视化 第十章

Python爬虫、数据分析、网站开发等案例教程视频免费在线观看

https://space.bilibili.com/523606542 

Python学习交流群:1039649593

 

数据清洗是数据分析关键的一步,直接影响之后的处理工作

数据需要修改吗?有什么需要修改的吗?数据应该怎么调整才能适用于接下来的分析和挖掘?

是一个迭代的过程,实际项目中可能需要不止一次地执行这些清洗操作

1. 处理缺失数据:

  • pd.fillna()
  • pd.dropna()

     

2. 数据转换

2.1 处理重复数据

duplicated()返回布尔型Series表示每行是否为重复行

示例代码:

  1. import numpy as np
  2. import pandas as pd
  3. df_obj = pd.DataFrame({'data1' : ['a'] * 4 + ['b'] * 4,
  4. 'data2' : np.random.randint(0, 4, 8)})
  5. print(df_obj)
  6. print(df_obj.duplicated())

运行结果:

  1. # print(df_obj)
  2. data1 data2
  3. 0 a 3
  4. 1 a 2
  5. 2 a 3
  6. 3 a 3
  7. 4 b 1
  8. 5 b 0
  9. 6 b 3
  10. 7 b 0
  11. # print(df_obj.duplicated())
  12. 0 False
  13. 1 False
  14. 2 True
  15. 3 True
  16. 4 False
  17. 5 False
  18. 6 False
  19. 7 True
  20. dtype: bool

drop_duplicates()过滤重复行

  • 默认判断全部列
  • 可指定按某些列判断

示例代码:

  1. print(df_obj.drop_duplicates())
  2. print(df_obj.drop_duplicates('data2'))

运行结果:

  1. # print(df_obj.drop_duplicates())
  2. data1 data2
  3. 0 a 3
  4. 1 a 2
  5. 4 b 1
  6. 5 b 0
  7. 6 b 3
  8. # print(df_obj.drop_duplicates('data2'))
  9. data1 data2
  10. 0 a 3
  11. 1 a 2
  12. 4 b 1
  13. 5 b 0

2.2 利用函数或映射进行数据转换

根据map传入的函数对每行或每列进行转换

示例代码:

  1. ser_obj = pd.Series(np.random.randint(0,10,10))
  2. print(ser_obj)
  3. print(ser_obj.map(lambda x : x ** 2))

运行结果:

  1. # print(ser_obj)
  2. 0 1
  3. 1 4
  4. 2 8
  5. 3 6
  6. 4 8
  7. 5 6
  8. 6 6
  9. 7 4
  10. 8 7
  11. 9 3
  12. dtype: int64
  13. # print(ser_obj.map(lambda x : x ** 2))
  14. 0 1
  15. 1 16
  16. 2 64
  17. 3 36
  18. 4 64
  19. 5 36
  20. 6 36
  21. 7 16
  22. 8 49
  23. 9 9
  24. dtype: int64

2.3 替换值

replace根据值的内容进行替换

示例代码:

  1. # 单个值替换单个值
  2. print(ser_obj.replace(1, -100))
  3. # 多个值替换一个值
  4. print(ser_obj.replace([6, 8], -100))
  5. # 多个值替换多个值
  6. print(ser_obj.replace([4, 7], [-100, -200]))

运行结果:

  1. # print(ser_obj.replace(1, -100))
  2. 0 -100
  3. 1 4
  4. 2 8
  5. 3 6
  6. 4 8
  7. 5 6
  8. 6 6
  9. 7 4
  10. 8 7
  11. 9 3
  12. dtype: int64
  13. # print(ser_obj.replace([6, 8], -100))
  14. 0 1
  15. 1 4
  16. 2 -100
  17. 3 -100
  18. 4 -100
  19. 5 -100
  20. 6 -100
  21. 7 4
  22. 8 7
  23. 9 3
  24. dtype: int64
  25. # print(ser_obj.replace([4, 7], [-100, -200]))
  26. 0 1
  27. 1 -100
  28. 2 8
  29. 3 6
  30. 4 8
  31. 5 6
  32. 6 6
  33. 7 -100
  34. 8 -200
  35. 9 3
  36. dtype: int64

3. 字符串操作

3.1 字符串方法

3.2 正则表达式方法

3.3 pandas字符串函数

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/839609
推荐阅读
相关标签
  

闽ICP备14008679号