清洗错误数据

收藏919

阅读1888

更新时间2025-08-12

数据错误

“错误数据”不一定是“空单元格”或“格式错误”,它可能只是错误的,比如有人记录 "199" 而不是 "1.99"。

有时您可以通过查看数据集来发现错误数据,因为您对它应该是什么样有一个预期。

如果您看一下我们的数据集,您可以看到在第 7 行,持续时间是 450,但对于所有其他行,持续时间在 30 到 60 之间。

这不一定是错误的,但考虑到这是某人的锻炼会话数据集,我们得出结论,这个人没有锻炼 450 分钟。

    Duration          Date  Pulse  Maxpulse  Calories
0         60  '2020/12/01'    110       130     409.1
1         60  '2020/12/02'    117       145     479.0
2         60  '2020/12/03'    103       135     340.0
3         45  '2020/12/04'    109       175     282.4
4         45  '2020/12/05'    117       148     406.0
5         60  '2020/12/06'    102       127     300.0
6         60  '2020/12/07'    110       136     374.0
7        450  '2020/12/08'    104       134     253.3
8         30  '2020/12/09'    109       133     195.1
9         60  '2020/12/10'     98       124     269.0
10        60  '2020/12/11'    103       147     329.3
11        60  '2020/12/12'    100       120     250.7
12        60  '2020/12/12'    100       120     250.7
13        60  '2020/12/13'    106       128     345.3
14        60  '2020/12/14'    104       132     379.3
15        60  '2020/12/15'     98       123     275.0
16        60  '2020/12/16'     98       120     215.2
17        60  '2020/12/17'    100       120     300.0
18        45  '2020/12/18'     90       112       NaN
19        60  '2020/12/19'    103       123     323.0
20        45  '2020/12/20'     97       125     243.0
21        60  '2020/12/21'    108       131     364.2
22        45           NaN    100       119     282.0
23        60  '2020/12/23'    130       101     300.0
24        45  '2020/12/24'    105       132     246.0
25        60  '2020/12/25'    102       126     334.5
26        60      20201226    100       120     250.0
27        60  '2020/12/27'     92       118     241.0
28        60  '2020/12/28'    103       132       NaN
29        60  '2020/12/29'    100       132     280.0
30        60  '2020/12/30'    102       129     380.3
31        60  '2020/12/31'     92       115     243.0

我们如何修复错误的值,例如第 7 行中的 "Duration" 值?

替换值

修复错误值的一种方法是用其他值替换它们。

在我们的例子中,这很可能是一个拼写错误,该值应该是 "45" 而不是 "450",我们可以在第 7 行插入 "45" :

实例

Set "Duration" = 45 in row 7:

df.loc[7, 'Duration'] = 45

对于小型数据集,您可能能够逐个替换错误数据,但对于大型数据集则不行。

对于大型数据集替换错误数据,您可以创建一些规则,例如为合法值设置一些边界,并替换超出边界的任何值。

实例

遍历 "Duration" 列中的所有值。

如果值大于 120,则将其设置为 120:

for x in df.index:
  if df.loc[x, "Duration"] > 120:
    df.loc[x, "Duration"] = 120

删除行

处理错误数据的另一种方法是删除包含错误数据的行。

这样您就不必找出用什么来替换它们,而且您很可能不需要它们来进行分析。

实例

删除 "Duration" 大于 120 的行:

for x in df.index:
  if df.loc[x, "Duration"] > 120:
    df.drop(x, inplace = True)

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

70.9万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号