Pandas-数据清洗
①缺失值处理
使用fillna()函数将缺失值替换为指定的值或使用插值方法填充缺失值
示例:df.fillna(0) #将缺失值替换为0
import pandas as pd
df1=pd.read_excel("销售表.xlsx")
# 检查每列是否缺失
print(df1.isna)
效果如下:
import pandas as pd
df1=pd.read_excel("销售表.xlsx")
#将缺失值替换为0
df1=df1.fillna(0)
print(df1)
效果如下:
使用dropna()函数删除包含缺失值的行
示例:df.dropna() #删除缺失的所在行
提示: dropna() 只能用来删除行,如需删除列,使用df.drop()函数 示例 df.drop(“col_name”, axis=1) (按列删除)
②重复值处理-删除数据行
drop_duplicates()方法可以删除DataFrame中的重复值
示例:df.drop_duplicates(inplace=True) #inplace=True 直接在原DataFrame上进行修改
使用方法:删除前先使用duplicated()方法可以检测DataFrame中的重复值。该方法返回一个布尔型Series,标记了哪些行是重复的。默认情况下,该方法对每一列进行检测,若某一行与之前的行重复,则标记为True
df1=pd.read_excel("销售明细表.xlsx")
#先检查是否有重复值
df1=df1.duplicated()
print(df1)
df1=pd.read_excel("销售明细表.xlsx")
#先检查是否有重复值
df1.drop_duplicates(inplace=True)
print(df1)
效果如下:
删除重复数据后,可以使用reset_index方法,重新设置索引,drop=true,表示删除旧索引,只保留新索引。df1= df1.reset_index(drop=True)
③重复值处理-指定列删除
drop_duplicates()方法,通过参数,指定列删除
场景描述:有时候只需检查某一列是否有重复值,可以通过指定列名来进行判断和删除。
df1=pd.read_excel("销售明细表.xlsx")
#先检查是否有重复值
df1.drop_duplicates(subset=["产品编号"],inplace=True)
df1 = df1.reset_index(drop=True)
print(df1)
④数据替换
replace() 函数用于替换数据。
语法结构:
replace(to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad')
参数说明:
to_replace:要替换的值,可以是单个值、列表、字典、正则表达式等
value:替换后的值
inplace:是否在原 DataFrame 上进行修改,默认为 False
limit:替换的最大次数
regex:是否使用正则表达式进行替换,默认为 False
method:替换方法,默认为 'pad',表示向前填充
df1=pd.read_excel("销售明细表.xlsx")
#将销售数量 为12的值替换成86
df1["销售数量"]=df1["销售数量"].replace(12,86)
print(df1)
效果如下图: