Python 数据分析:数据评估 -- 影响分析效率的细节坑(质量&整洁度评估)

在这里插入图片描述

引言

  进行数据处理前,精准有效的评估数据的一些基本信息如整洁度和质量等尤为重要。下面的几行代码肯定已经被各位数据分析师敲烂了。

df.info()
df.head()
df.describe()

  至于每行代码的作用想必已不必多说。

  • df.info() 信息概览,数据数量,列属性,初步缺失值查看等
  • head(), tail(), sample() 随即查看一些数据
  • describe(): 各分位点,均值,极值等

问题1
  是否能够有一个函数代替这三行代码呢?省去了每次略微繁琐的敲击

问题2
  以下面的用户数据为例,看一下是否有什么数据评估时值得注意的细节?毕竟列很少,数据量也不多。
在这里插入图片描述

逐个击破

问题1
  将这三个函数封装在自己写的库里面即可,一个自定义的函数便可实现快捷调用,使用效果如下
在这里插入图片描述
  代码如下

# 基础库
import numpy as np
import pandas as pd

# 提高输出效率库,下面这两行代码不用动
from IPython.core.interactiveshell import InteractiveShell # 实现 notebook 的多行输出
InteractiveShell.ast_node_interactivity = 'all' #默认为'last'

# ======================= 老三样 ==============================
def routine(df):  # 传入整个数据框, 打印老三样
    print('df.info() 如下...')
    print('-'*50)
    print(df.info())
    print('=' * 50 + '\n')
    print('df.head() 如下...')
    print('-'*50)
    print(df.head())
    print('=' * 50, '\n')
    print('df.describe() 如下...')
    print('-'*50)
    print(df.describe())

  当然,笔者有一个数据可视化自写库系列,都是光速调用绘制复杂美图的改装函数,这里简单展示 3 个。

treemap 树形图 饼图升级版超详解,体现占比的同时显示出数量(放入自写库,一行代码搞定复杂细节绘图)

seaborn displot 正态分布曲线拟合图代码注释超详解(放入自写库,一行代码搞定复杂细节绘图)

Matplotlib Heatmap 热力图,相关系数矩阵图(放入自写库,一行代码搞定复杂细节绘图)

问题2
  在数据分析和处理过程中,选择列这一操作几乎每分钟都会用到,如果列名的格式不统一,如不都是全小写 + 下划线这样的操作,很有可能给分析效率带来不必要的麻烦,尤其是开启了 Jupyter Notebook 代码自动提醒的朋友,简直折磨,数据评估环节许多分析师们都会专注于数据框中的数据比如是否缺失,数据类型是否正确等等,却少有人一开始就关注到行列的格式,名字这些微小的细节,正所谓层层缩小评估框,一开始是数据框的最外围,即行列索引。所以,笔者再次自写了一个小函数供自己使用,这个函数非常简单,使用效果和代码如下。
在这里插入图片描述

# =========== 数据评估函数(数据框外围) ================
def columns_name_modify(df):  # 传入整个文件
    print('正在优化列名格式,全部换成小写...')
    df = df.rename(str.lower, axis='columns')
    print('正在优化列名,将空格替换成下划线 _')
    df.columns = df.columns.str.replace(' ', '_')
    print('显示成品...')
    print(df.sample())
    return df

  当然,我们还可以根据实际需求添加各种改造函数,这在 Python 批处理文件中绝对是效率加倍的。



后记

  数据分析,商业实践,数据可视化,网络爬虫,统计学,Excel,Word, 社会心理学,认知心理学,行为科学,民族意志学 各种专栏后续疯狂补充

  欢迎评论与私信交流!

发布了38 篇原创文章 · 获赞 25 · 访问量 4753

猜你喜欢

转载自blog.csdn.net/weixin_43329700/article/details/104376656