百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python数据清洗:处理缺失值、异常值和重复值

off999 2024-09-16 00:49 46 浏览 0 评论

在Python数据分析中,数据清洗是一个非常重要的步骤。数据清洗包括处理缺失值、异常值和重复值,以及进行数据转换和归一化等操作。本文将介绍如何使用Python进行数据清洗,并提供相应的代码示例。

1.缺失值处理

缺失值是指数据集中某些数据项的值为空或未知。在数据分析中,通常需要对缺失值进行处理。以下是一些常用的处理方法:

1.1 删除含有缺失值的行或列

可以使用pandas库中的dropna()函数删除含有缺失值的行或列。例如:


import pandas as pd

data = pd.DataFrame({'A': [1, 2, None], 'B': [4, None, 6]})
data = data.dropna()
print(data)

输出结果为:


     A    B
0  1.0  4.0
1  2.0  NaN
2  NaN  6.0
     A    B
0  1.0  4.0

如上所示,可以看到,含有缺失值的行被删除了。

1.2 用平均值或众数填充缺失值

可以使用pandas库中的fillna()函数用平均值或众数填充缺失值。例如:


import pandas as pd

data = pd.DataFrame({'A': [1, 2, None], 'B': [4, None, 6]})
data['A'] = data['A'].fillna(data['A'].mean())
data['B'] = data['B'].fillna(data['B'].mode()[0])
print(data)

data['B'].mode()表示:计算 'B' 列中的众数,即出现次数最多的值。mode() 方法返回一个包含众数的 Series。最后 data['B'].mode()[0]表示从众数的 Series 中选择第一个值,即取得列 'B' 中出现频率最高的值。 输出结果为:


     A    B
0  1.0  4.0
1  2.0  4.0
2  1.5  6.0

可以看到,缺失值被用平均值填充了。上面两处代码的具体运行截图如下所示。

2.异常值处理

异常值是指数据集中与大多数数据不同的离群点。在数据分析中,通常需要对异常值进行处理。以下是一些常用的处理方法:

2.1 用平均值或中位数替换异常值

可以使用numpy库中的mean()和median()函数计算数据的平均值和中位数,然后用它们替换异常值。例如:


import numpy as np
import pandas as pd
import copy

data = pd.DataFrame({'A': [1, 2, 3, np.inf, -np.inf]})
copy_data = copy.deepcopy(data)
copy_data['A'] = copy_data['A'].replace([np.inf, -np.inf], np.nan)
print(copy_data)
mean = copy_data['A'].mean(skipna=True)
median = copy_data['A'].median(skipna=True)
data['A'] = np.where((data['A'] > mean + 3 * median) | (data['A'] < mean - 3 * median), median, data['A'])
print(data)

输出结果为:


 A
0  1.0
1  2.0
2  3.0
3  NaN
4  NaN
     A
0  1.0
1  2.0
2  3.0
3  2.0
4  2.0

可以看到,异常值被用中位数替换了。这段代码首先创建了一个 DataFrame,然后使用深拷贝创建了一个拷贝 DataFrame。在拷贝 DataFrame 上,使用 .replace 方法将正无穷大和负无穷大替换为 NaN(缺失值)。接着,计算拷贝 DataFrame 的 'A' 列的均值和中位数,注意使用了 skipna=True 参数来忽略缺失值。

接下来,使用 np.where 来检查原始 DataFrame 中的 'A' 列是否超出了 3 倍中位数的范围,如果是,则用中位数替换。

这个代码块的功能是处理 'A' 列中的异常值,将超出阈值的值替换为中位数,并且在处理之前通过拷贝 DataFrame 将正无穷大和负无穷大替换为 NaN。

3.重复值处理

重复值是指数据集中某些数据项的值相同。在数据分析中,通常需要对重复值进行处理。以下是一些常用的处理方法:

可以使用pandas库中的drop_duplicates()函数删除重复值。例如:


import pandas as pd

data = pd.DataFrame({'A': [1, 2, 2, 3, 3, 3], 'B': [4, 5, 5, 6, 6, 6]})
data = data.drop_duplicates()
print(data)

输出结果为:


     A  B
0  1  4
1  2  5
3  3  6

    

可以看到,重复值被删除了。

用众数替换重复值

可以使用pandas库中的mode()函数计算数据的众数,然后用它替换重复值。例如:


import pandas as pd
import numpy as np
# 创建示例数据
data = pd.DataFrame({'A': [1, 2, 2, 3, 3, 3, 4, 4, 5, 6]})
print(data)
# 计算众数
mode_value = data['A'].mode()[0]
# 将重复值替换为众数
data['A'] = np.where(data.duplicated(subset=['A']), mode_value, data['A'])
print(data)

在这个示例中,我们首先创建一个包含重复值的 DataFrame 'data'。然后,使用 .mode() 方法计算 'A' 列的众数,并将其保存在变量 mode_value 中。接着,使用 np.where 来检查 'A' 列是否有重复值,如果有,就将其替换为众数。运行代码后,输出结果为:


 A
0  1
1  2
2  2
3  3
4  3
5  3
6  4
7  4
8  5
9  6
   A
0  1
1  2
2  3
3  3
4  3
5  3
6  4
7  3
8  5
9  6

可以看到,重复值被用众数替换了。其中data.duplicated(subset=['A']):这部分代码返回一个布尔数组,指示每行是否是重复行。subset=['A'] 表示我们只检查列 'A' 是否有重复值。

相关推荐

c盘右边有个恢复分区怎么删除

1、从网上下载“分区助手专业6.2(或5.6)”,它能无损分区,下载后打开按提示安装,点击分区助手桌面快捷方式图标,打开分区助手专业版6.2主界面。2、右击要调出空间的分区,如E,选“分配自由空间”,...

电脑插着电源却不充电怎么办

电脑插上电源但无法充电可能有以下原因:1.电池没有完全安装,需要检查电池是否完全插入笔记本电脑中。2.电池损坏,如果电池老化或发生机械故障、磨损和损伤,充电电流将会被阻塞从而无法进行充电,需要更换...

如何格式化手机(华为p50如何格式化手机)
如何格式化手机(华为p50如何格式化手机)

步骤/方式1软件格式化:利用psiloc公司的软件sTools,进行格式化手机,锁码为12345步骤/方式2软格:在手机上输入*#7370#之后要求你输入锁码,初始密码是:12345步骤/方式3硬格:先关机,再开机的时候按住拨号键、“*...

2025-12-17 12:03 off999

win10自动更新的禁用方法(win10自动更新的禁用方法是什么)

方法一:Windows设置  要想关闭Win10自动更新,比较简单的一种方法就是进入到Windows设置中,将Windows更新直接关闭。步骤如下:  1、按“Windows+I”键,打开Wind...

优化win7系统运行速度(优化win7系统运行速度多少)

优化WIN7系统开机启动项的操作方法1、在桌面上按组合键(win键+R)打开运行窗口,接着输入“regedit”,回车确认,2、打开注册表编辑器后,我们依次点击展开“HKEY_CURRENT_USE...

win7设置每天自动开机时间(win7设置每天自动开机时间任务)

要在Windows7上设置每天自动开关机,您可以按照以下步骤操作:1.打开“控制面板”,单击“系统和安全”,然后选择“计划任务”。2.单击“创建基本任务”,输入一个适合您的任务名称,并添加相应的...

苹果电脑装双系统好用吗(苹果电脑安装双系统会不会对电脑不好)

好处:1、可以在保留原来的系统上再安装一个新系统,两个系统互不干扰,可以互相切换,使用方便。2、双系统可以在不用环境系进行软件调试没测试电脑的兼容性。3、双系统可以让用户体验不同的系统功能,提高用户的...

qq好友恢复网站官方网站(qq好友恢复官方网站为什么不能用)
  • qq好友恢复网站官方网站(qq好友恢复官方网站为什么不能用)
  • qq好友恢复网站官方网站(qq好友恢复官方网站为什么不能用)
  • qq好友恢复网站官方网站(qq好友恢复官方网站为什么不能用)
  • qq好友恢复网站官方网站(qq好友恢复官方网站为什么不能用)
在电脑上复制粘贴按什么键(电脑怎复制粘贴按那个键)

电脑键盘上的“复制和粘贴”,分别是Ctrl+c和Ctrl+v,其中复制的快捷键是Ctrl+c,粘贴的快捷键是Ctrl+v。鼠标右键,点击右键会出菜单,移动光标后点击左键确认。键盘复制的快捷键:Ctrl...

office是电脑自带的吗(电脑自带的office都是2016版)

基本上大品牌电脑,都会带正版的office软件。如果是自己组装的电脑,一般使用的盗版软件,不是正版的。现在office软件分为国产和进口两个版本,进口的是微软office,国产的是wpsoffice...

怎么样的电脑配置才算好(怎么样的电脑配置才算好的)
  • 怎么样的电脑配置才算好(怎么样的电脑配置才算好的)
  • 怎么样的电脑配置才算好(怎么样的电脑配置才算好的)
  • 怎么样的电脑配置才算好(怎么样的电脑配置才算好的)
  • 怎么样的电脑配置才算好(怎么样的电脑配置才算好的)
appstore应用商店下载(AppStore应用商店下载入口)

可能因为1.你的软件原来在其他国家下载的,你现在账户不支持那个软件的更新,只要更改到相应的地区就好了2.可能你网不好(?˙ー˙?)3.你的pad原来登录的账户和现在不一样,所以你现在...

联想售后人工客服24小时电话

联想服务中心朝阳区望京店距您12.2KM营业时间:周一至周日9:00-18:00疫情期间停业好评度:98%已服务人数61945联想服务中心昌平区天通苑店距您5.1KM营业时间:周一至周日9:...

鼠标dpi键有什么作用(鼠标的dpi键)

鼠标DPI(DotsPerInch)键的作用是调节鼠标的定位精度和速度。DPI是鼠标的定位精度单位,指的是鼠标在平面上每移动一英寸能准确定位的最大信息数。通常情况下,鼠标DPI越高,鼠标指针在屏幕...

无线网登录密码忘记了怎么办

1、先查看一下wifi链接的网关是多少,如果是默认的多为192.168.1.1或者192.168.0.1这个地址。2、然后打开ie浏览器,输入查看到的网关地址,比如192.168.1.1,会弹出登录对...

取消回复欢迎 发表评论: