缺失值处理

  1. # 实例
  2. import pandas as pd
  3. df = pd.read_excel(r"test.xlsx", sheet_name = 0, header = 0)
  4. df
  5. # header : 设置索引列
  6. # index_col : 设置索引行
  7. # sheet_name : 指定打开工作表
  8. # usecols : 指定导入列

查看缺失情况

  1. #
  2. df.info()
  3. #
  4. df.isna()

缺失值删除

  1. #
  2. df.dropna(how='all')

缺失值填充

  1. #
  2. df.fillna(0)
  3. #
  4. df.fillna({"性别":"男", "年龄":"女"})

重复值处理

  1. #
  2. df.drop_duplicates()
  3. #
  4. df.drop_duplicates(subset = "编号")
  5. #
  6. df.drop_duplicates(subset = ["编号", "性别"], keep = False)
  7. # keep 可选值包括: first False last

异常值处理

检测

  • 业务经验
  • 箱型图
  • 正态分布

处理方式

  • 删除
  • 替换
  • 研究

删除

对数值进行筛选,比如说“年龄”一项有“200”,那就把不大于200的筛选出来,这样得到的值就是“删除后的值”。
记住,“删除”的本质其实是要得到目标数据,而“筛选”其实就是一种特殊的“删除”方式。

替换

  1. #
  2. df.replace(54, 45)
  3. #
  4. df.replace([54,50], 45)
  5. #
  6. df.replace({54:45, 50:15, 27:72})

研究

根据实际业务,研究异常值出现的原因:输入错误、是否是因为其他某些原因等等。

数据类型转换

Pandas 的主要数据类型

  • int : 整数型
  • float : 浮点数
  • object : 对象类型,用 O 表示
  • string_ : 字符串类型,用 S 表示
  • unicode_ : 固定长度的 unicode 类型
  • datetime64[ns] : 时间格式
  1. # 获取数据类型
  2. df.info()
  3. # df["列名"].dtype
  4. df["年龄"].dtype
  5. # 数据类型转换
  6. # df["列名"].astype("目标数据类型名")
  7. df["年龄"].astype("float")

索引

  1. # # 添加列索引
  2. # df.columns = ["身份证", "Age", "Sex", "Date"]
  3. # df
  4. # # 添加索引数量,必须要和表的列数对等,否则会报错
  5. # # 添加行索引
  6. # df.index = ["0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"]
  7. # df
  8. # # 同样,数量也要和行数对等,否则报错
  9. # # 更改索引
  10. # df.set_index("身份证", inplace=True)
  11. # df
  12. # # 重命名列索引
  13. # df.rename(columns = {"Age":"年龄", "Sex":"性别", "Date":"日期"})
  14. # df
  15. # 重命名行索引
  16. df.rename(index = {1:"0000", 2:"0001"})
  17. # 重置索引
  18. df.reset_index()
  19. # 此方法主要用于将层次化索引降解,多用于数据分组、透视表。