对DataFrame数据进行describe前需要注意,如果非category类,则describe只针对传统数值型数据筛选后进行描述统计分析
书中代码的思路是通过统计count数=0,如果为真,则进行删除改列 判断的前提是,每个列都需要被统计到count的值,但我通过实验发现并不是每一个列都会在describe后返回的数据中被统计到
Detail1变量:
colisNull1变量:
Col变量:
colisNull2变量: colisNull3变量: colisNull33变量:
coltype变量:
通过观察colisNull1变量我们可以发现 Describe方法只统计分析了两列的数据,也就是说在detail1这么多列中只有2列能被统计到,如果除了这两列出现了整列为空或者整列相同,则会出现忽略处理的情况。 我们再次独立统计两列,一个未被统计到的列“order_id”和被统的列“amounts”观察变量colisNull2可以发现,还是只有amounts列被统计 我们独立统计列order_id和detial_id,观察colisNull3和colisNull33,可以发现强制统计非传统数值类型的列可以被统计到,前提是这些列中不能有传统数值的列,否则会进行筛选统计 我们观察coltype可以看到detail1的DataFrame的各个列的数据类型 只有最初默认被统计的两列是float64的类型,属于传统数值型,所以会被自动统计。 这里有两种方法进行代码补充 第一种: 在统计非空时使用DataFrame_type.count()方法 在统计相同时,取所有列的值,是否等于第一个值,在进行False的in判断,如果其中存在Flase,则列值不全相同 第二种:在操作开始前,对DataFrame数据类型进行全转换,全部转换为category DataFrame_type.astype(‘category’)
可以发现统计的数据为全部列