Pandas数据分析系列4-数据如何清洗

本文介绍了Pandas中数据清洗的四个关键步骤:使用fillna()填充缺失值,利用dropna()删除含有缺失值的行,通过drop_duplicates()去除重复行或指定列的重复值,以及用replace()函数替换特定数据。示例包括缺失值替换为0、删除重复行、按列删除重复值以及用86替换销售数量为12的记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)

效果如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值