当前位置: 首页 > article >正文

数据清洗-总结

简单归纳,数据清洗就分为四步:

拆 -> 丢 -> 填 -> 格式化

1、所谓拆,就是将信息成分复杂的字段进行拆分,如数据形如"3室2卫", 其杂糅了两个数字信息,可以拆分成两个单独的字段,使用uint8进行存储,即减少了存储占用,又能方便数据分析。

拆为什么要先于"丢"和"填", 这并不是绝对的。但是,通常情况下,哪怕待拆分的列有缺失值或异常值,也是可以通过正则正常拆分的。拆分后有新的列产生,此时很自然需要单独的"丢"或"填"处理。

2、丢,主要针对四种类型:

①重复值(DataFrame.drop_duplicate(inplace=True))

②不研究的列(这需要我们开始就明确自己的研究目的), 比如我们拿到一份公司招聘数据,字段中还含有HR的名字和联系电话,这些数据正常只有我们真的想去找公司才需要,如果只是做数据分析直接舍去就好,能显著减少数据加载时间和内存占用,何乐而不为呢?

③缺失值过多或全是缺失值的列

比如一个列,里面8个字段有超过4个字段都有缺失值,此时其信息丢失实在太严重了,花费大力气去填补还不如直接舍去。还有些时候如一个csv文件你会看到n个连续",": ,,,,,,,

这种情况就是整行数据全为空了,自然也是直接舍弃掉,简单一句:

df.dropna(how="all", inplace=True)就搞定了,基本就是固定写法。

④异常值列(占比少时)

如果异常值占比少,丢掉几个异常值对整体分析结果影响就不大了。此时与其花功夫研究怎么填补他们,直接舍弃掉来得更加轻松,毕竟数据分析最终的目的是要得出一个有效结论的,不影响结论的数据怎么处理都行哈! 当然我们也要有意识的看看这些异常值是什么导致的,有时少部分的异常值可能暗含某种重要信息呢!

3、填

填充可谓大有学问,最简单的"众数, 中位数, 平均数"填补法仅仅是尽可能减少了异常值对整体分析结果的影响,但并不见得是最佳策略。有能力的尝试使用一些更高级的数学方法或机器学习啥的来填充,这样出来的分析结果就更加精确了。

4、格式化字段

所谓格式化就是统一了。如有的数据用中文数字"十", 有的用阿拉伯数字10,这种不统一的情况当然不能容忍,需要统一。特别的,格式化不一定放到最后,像一些数值型的异常值检查时我们可能就需要先格式化。

上述步骤总体并不是严格固定的,但基本可以遵循此顺序。统一过程无疑是最高效的!


http://www.kler.cn/news/365574.html

相关文章:

  • 语音语言模型最新综述! 关于GPT-4o背后技术的尝试
  • Flutter之build 方法详解
  • Java八股整合(Kafka+RocketMQ+K8S)
  • docker搭建mysql多主多从环境
  • AIGC底层技术揭秘
  • 证件照电子版怎么弄?不花钱制作方法快来学
  • 如何从iconfont中获取字体图标并应用到微信小程序中去?
  • 【个人记录】新电脑的配置截图和电源选项的修改
  • Python爬虫:从入门到精通
  • 微信小程序中关闭默认的 `navigationBar`,并使用自定义的 `nav-bar` 组件
  • 文案语音图片视频管理分析系统-视频矩阵
  • 使用frp0.61.0透传局域网的https服务到自有域名
  • AWS免费账号付费了能退吗
  • 英语语法笔记
  • 低代码(Low Code)是什么?解决了哪些问题?适合在什么业务场景中用?
  • 基于SSM+小程序的垃圾分类管理系统(垃圾2)
  • 青少年编程与数学 02-002 Sql Server 数据库应用 08课题、索引的操作
  • supermall项目上拉加载bug分析
  • Word中Normal.dotm样式模板文件
  • [RK3566-Android11] 使用SPI方式点LED灯带-JE2815/WS2812,实现呼吸/渐变/随音量变化等效果
  • 【云原生】Kubernets1.29部署StorageClass-NFS作为存储类,动态创建pvc(已存在NFS服务端)
  • Windows安装PM2 注意事项与错误查改
  • masm32下载及安装
  • TCP simultaneous open测试
  • 【多Agent协作论文解读】采用STORM模式更好利用LLM撰写长文章,基于Dify复现
  • Unity3D学习FPS游戏(3)玩家第一人称视角转动和移动