# Pandas对缺失值的处理(判断是否为空、删除or丢弃、填充空值) # pandas使用这些函数处理缺失值: # isnull 和 notnull :检验是否是空值,可用于series和df # dropna:丢弃、删除缺失值 # axis:删除行还是列,{0 or “index”,1 or “columns”},default 0 # how :如果等于any则任何值为空都删除,如果等于all则所有值为空才删除 # inplace: 如果是True则修改当前df,否则返回新的df # fillna:填充空值 # value: 用于填充的值,可以是单个值,或者字典(key是列名,value是值) # method : 等于ffill使用前一个不为空的值填充forword fill;;等于bfill使用后一个不为空的值填充backword fill # axis : 按行还是列进行填充{0 or“index”,1 or“columns”} # inplace: 如果是True则修改当前df,否则返回新的df import pandas as pd # 实例:特殊excel的读取、清洗、处理 # 步骤1 读取excel的时候,忽略前几个空行 studf = pd.read_excel("文件路径",skiprows=2) #跳过前2个空行 # 步骤2 检测空值 studf.isnull() studf["分数"].isnull() studf["分数"].notnull() # 筛选没有空分数的所有行 studf.loc[studf["分数"].notnull(),:] # 步骤3: 删除掉全是空值的列 studf.dropna(axis = "columns",how="all",inplace = True) # 步骤4 : 删除掉全是空值的行 studf.dropna(axis = "index",how = "all",inplace=True) # 步骤5 : 将分数列为空的填充为0分 studf.fillna({"分数":0}) # 等同于 studf.loc[:,"分数"] = studf["分数"].fillna(0) # 步骤6 将姓名的缺失值天填充 # 使用前面的有效值填充,有ffill:forword fill studf.loc[:,"姓名"] = studf["姓名"].fillna(method = "ffill") # 步骤7 将清洗好的excel保存 studf.to_excel("保存路径",index = False) #去除索引