缺失值处理
# 实例import pandas as pddf = pd.read_excel(r"test.xlsx", sheet_name = 0, header = 0)df# header : 设置索引列# index_col : 设置索引行# sheet_name : 指定打开工作表# usecols : 指定导入列
查看缺失情况
#df.info()#df.isna()
缺失值删除
#df.dropna(how='all')
缺失值填充
#df.fillna(0)#df.fillna({"性别":"男", "年龄":"女"})
重复值处理
#df.drop_duplicates()#df.drop_duplicates(subset = "编号")#df.drop_duplicates(subset = ["编号", "性别"], keep = False)# keep 可选值包括: first False last
异常值处理
检测
- 业务经验
- 箱型图
- 正态分布
处理方式
- 删除
- 替换
- 研究
删除
对数值进行筛选,比如说“年龄”一项有“200”,那就把不大于200的筛选出来,这样得到的值就是“删除后的值”。
记住,“删除”的本质其实是要得到目标数据,而“筛选”其实就是一种特殊的“删除”方式。
替换
#df.replace(54, 45)#df.replace([54,50], 45)#df.replace({54:45, 50:15, 27:72})
研究
根据实际业务,研究异常值出现的原因:输入错误、是否是因为其他某些原因等等。
数据类型转换
Pandas 的主要数据类型
- int : 整数型
- float : 浮点数
- object : 对象类型,用 O 表示
- string_ : 字符串类型,用 S 表示
- unicode_ : 固定长度的 unicode 类型
- datetime64[ns] : 时间格式
# 获取数据类型df.info()# df["列名"].dtypedf["年龄"].dtype# 数据类型转换# df["列名"].astype("目标数据类型名")df["年龄"].astype("float")
索引
# # 添加列索引# df.columns = ["身份证", "Age", "Sex", "Date"]# df# # 添加索引数量,必须要和表的列数对等,否则会报错# # 添加行索引# df.index = ["0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"]# df# # 同样,数量也要和行数对等,否则报错# # 更改索引# df.set_index("身份证", inplace=True)# df# # 重命名列索引# df.rename(columns = {"Age":"年龄", "Sex":"性别", "Date":"日期"})# df# 重命名行索引df.rename(index = {1:"0000", 2:"0001"})# 重置索引df.reset_index()# 此方法主要用于将层次化索引降解,多用于数据分组、透视表。
