Python Pandas 选出指定类型的所有列,统计列的各个类型的数量并用于探索性数据分析(附数据与源码)

Python Pandas 选出指定类型的所有列,统计列的各个类型的数量并用于探索性数据分析(附数据与源码)_第1张图片

更多包含丰富源数据源代码的 Pandas 高阶操作,数据可视化,以及商业数据分析实战案例,尽在公众号 “ 数据分析与商业实践

通过本文,你将知晓如何利用 Pandas 选出指定类型的所有列用于后续的探索性数据分析,这个方法在处理大表格时非常有用(如列非常多的金融类数据),如果能够较好的掌握精髓,将能大大提升数据评估与清洗的能力,为后续建模提供高质量的数据。

这个技巧并没有什么原理性的东西,所以这里直接呈现代码。



数据读入

Python Pandas 选出指定类型的所有列,统计列的各个类型的数量并用于探索性数据分析(附数据与源码)_第2张图片

统计列的各个类型的数量

Python Pandas 选出指定类型的所有列,统计列的各个类型的数量并用于探索性数据分析(附数据与源码)_第3张图片

选出类型为 object 的所有列

在机器学习与数学建模中,数据类型为 float 或者 int 的才好放入模型,像下图这样含有不少杂音的可不是我们想要的。当然,include=[“int”, “float”] 便表示选出这两个类型的所有列,你可以自行举一反三。
Python Pandas 选出指定类型的所有列,统计列的各个类型的数量并用于探索性数据分析(附数据与源码)_第4张图片

对 object 列们进行探索性数据分析

Python Pandas 选出指定类型的所有列,统计列的各个类型的数量并用于探索性数据分析(附数据与源码)_第5张图片
Python Pandas 选出指定类型的所有列,统计列的各个类型的数量并用于探索性数据分析(附数据与源码)_第6张图片

通过打印出来的信息,我们可以很快知道每一个 object 列大概需要怎么清洗,但许多优秀的数据分析师并不会马上着手操作,而是都先记录下来,最后再一起操作,毕竟可能有可以复用的代码或可以批量进行的快捷操作

这是笔者在进行金融数据分析清洗时的记录(根据上面的步骤后发现的需要对 object 类型列进行的操作)

  • terms:字符串 month 去掉,可能需要适当的分箱
  • int_rate(interesting rate):去掉百分号
  • emp_length:工作年限混入了 <,+ 等无关字符串,如 10+,<1 years 等,需要 先 replace 然后再 map 或者 apply 替换一下
  • title: 该列分类太多,快两万,占到了数据集的 2/3,查找一些业务看看是否属于需要删去的无关变量
  • addr_state:地址变量虽然只有 50 个分类,但似乎也无太大作用,探究删去
  • earliest_cr_time:该列有 526 各类,可能需要根据业务知识进行离散化分箱
  • home_ownership:房屋所有情况,全款支付了的给个1,其余的都给 0
  • 未完待续…

先列出来再统一操作的好处是当发现处理错误或者需要更改方法时,还能快速找到自己当时的思路。
Python Pandas 选出指定类型的所有列,统计列的各个类型的数量并用于探索性数据分析(附数据与源码)_第7张图片
更多包含丰富源数据源代码的 Pandas 高阶操作,数据可视化,以及商业数据分析的原理+实战案例,尽在公众号 “ 数据分析与商业实践

Pandas 的技巧看似琐碎,但积累到一定程度后,便可以发现许多技巧都存在共通之处。小事情重复做也会成为大麻烦,所以高手都懂得分类处理。

贯通了 3 个核心,我们才能省时省事,成为别人眼中的高手:

  • 大量重复的工作懂得批处理。
  • 反复要做的固定操作固化成 " 模板 “,” 套路 "。
  • 碰到异常情况,知道准确高效的解决。


在这里插入图片描述

  • 原理+代码|手把手教你 Python 基于数据不平衡的反欺诈模型实战

后续会陆续更新 Python 场景实践的原理与代码实战
Python Pandas 选出指定类型的所有列,统计列的各个类型的数量并用于探索性数据分析(附数据与源码)_第8张图片

你可能感兴趣的:(#,数据处理,数据分析,python,Pandas,数据预处理,数据清洗)