赞
踩
Python爬虫、数据分析、网站开发等案例教程视频免费在线观看
https://space.bilibili.com/523606542
数据清洗是数据分析关键的一步,直接影响之后的处理工作
数据需要修改吗?有什么需要修改的吗?数据应该怎么调整才能适用于接下来的分析和挖掘?
是一个迭代的过程,实际项目中可能需要不止一次地执行这些清洗操作
pd.dropna()
duplicated()返回布尔型Series表示每行是否为重复行
示例代码:
- import numpy as np
- import pandas as pd
-
- df_obj = pd.DataFrame({'data1' : ['a'] * 4 + ['b'] * 4,
- 'data2' : np.random.randint(0, 4, 8)})
- print(df_obj)
-
- print(df_obj.duplicated())
运行结果:
- # print(df_obj)
- data1 data2
- 0 a 3
- 1 a 2
- 2 a 3
- 3 a 3
- 4 b 1
- 5 b 0
- 6 b 3
- 7 b 0
-
- # print(df_obj.duplicated())
- 0 False
- 1 False
- 2 True
- 3 True
- 4 False
- 5 False
- 6 False
- 7 True
- dtype: bool

drop_duplicates()过滤重复行
示例代码:
- print(df_obj.drop_duplicates())
- print(df_obj.drop_duplicates('data2'))
运行结果:
- # print(df_obj.drop_duplicates())
- data1 data2
- 0 a 3
- 1 a 2
- 4 b 1
- 5 b 0
- 6 b 3
-
- # print(df_obj.drop_duplicates('data2'))
- data1 data2
- 0 a 3
- 1 a 2
- 4 b 1
- 5 b 0
根据map传入的函数对每行或每列进行转换
示例代码:
- ser_obj = pd.Series(np.random.randint(0,10,10))
- print(ser_obj)
-
- print(ser_obj.map(lambda x : x ** 2))
运行结果:
- # print(ser_obj)
- 0 1
- 1 4
- 2 8
- 3 6
- 4 8
- 5 6
- 6 6
- 7 4
- 8 7
- 9 3
- dtype: int64
-
- # print(ser_obj.map(lambda x : x ** 2))
- 0 1
- 1 16
- 2 64
- 3 36
- 4 64
- 5 36
- 6 36
- 7 16
- 8 49
- 9 9
- dtype: int64

replace根据值的内容进行替换
示例代码:
- # 单个值替换单个值
- print(ser_obj.replace(1, -100))
-
- # 多个值替换一个值
- print(ser_obj.replace([6, 8], -100))
-
- # 多个值替换多个值
- print(ser_obj.replace([4, 7], [-100, -200]))
运行结果:
- # print(ser_obj.replace(1, -100))
- 0 -100
- 1 4
- 2 8
- 3 6
- 4 8
- 5 6
- 6 6
- 7 4
- 8 7
- 9 3
- dtype: int64
-
- # print(ser_obj.replace([6, 8], -100))
- 0 1
- 1 4
- 2 -100
- 3 -100
- 4 -100
- 5 -100
- 6 -100
- 7 4
- 8 7
- 9 3
- dtype: int64
-
- # print(ser_obj.replace([4, 7], [-100, -200]))
- 0 1
- 1 -100
- 2 8
- 3 6
- 4 8
- 5 6
- 6 6
- 7 -100
- 8 -200
- 9 3
- dtype: int64

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。