对于pandas中describe方法处理数据时候需要注意数据类型问题与统计结果显示不全问题

对于pandas中describe方法处理数据时候需要注意数据类型问题与统计结果显示不全问题

问题原因

对DataFrame数据进行describe前需要注意,如果非category类,则describe只针对传统数值型数据筛选后进行描述统计分析

书本代码

《对于pandas中describe方法处理数据时候需要注意数据类型问题与统计结果显示不全问题》
书中代码的思路是通过统计count数=0,如果为真,则进行删除改列
判断的前提是,每个列都需要被统计到count的值,但我通过实验发现并不是每一个列都会在describe后返回的数据中被统计到

测试代码

《对于pandas中describe方法处理数据时候需要注意数据类型问题与统计结果显示不全问题》

Detail1变量:
《对于pandas中describe方法处理数据时候需要注意数据类型问题与统计结果显示不全问题》

colisNull1变量:

《对于pandas中describe方法处理数据时候需要注意数据类型问题与统计结果显示不全问题》
Col变量:
《对于pandas中describe方法处理数据时候需要注意数据类型问题与统计结果显示不全问题》

colisNull2变量:
《对于pandas中describe方法处理数据时候需要注意数据类型问题与统计结果显示不全问题》
colisNull3变量:
《对于pandas中describe方法处理数据时候需要注意数据类型问题与统计结果显示不全问题》
colisNull33变量:
《对于pandas中describe方法处理数据时候需要注意数据类型问题与统计结果显示不全问题》

coltype变量:
《对于pandas中describe方法处理数据时候需要注意数据类型问题与统计结果显示不全问题》

实验分析

通过观察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’)

测试修改结果方法二

《对于pandas中describe方法处理数据时候需要注意数据类型问题与统计结果显示不全问题》

《对于pandas中describe方法处理数据时候需要注意数据类型问题与统计结果显示不全问题》
可以发现统计的数据为全部列

    原文作者:深红巨龙
    原文地址: https://blog.csdn.net/weixin_44286843/article/details/101940938
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞