zoukankan      html  css  js  c++  java
  • 快速提高Python数据分析速度的八个技巧

    今天整理了几个在使用python进行数据分析的常用小技巧、命令。记得搭配Pandas+Jupyter Notebook使用哦。

    01 使用Pandas  Profiling预览数据

    这个神器我们在之前的文章中就详细讲过,使用Pandas  Profiling可以在进行数据分析之前对数据进行快速预览,拿我们使用过很多次的NBA数据集来说,导入数据集之后

    import pandas as pd
    import pandas_profiling
    nba = pd.read_csv('nba_all_elo.csv') #导入数据
    
    nba.profile_report()

    一行代码就生成丰富的交互式数据EDA报告

    可以看到,除了之前我们需要的一些描述性统计数据,该报告还包含以下信息:

    • 类型推断:检测数据帧中列的数据类型。

    • 要点:类型,唯一值,缺失值

    • 分位数统计信息,例如最小值,Q1,中位数,Q3,最大值,范围,四分位数范围

    • 描述性统计数据,例如均值,众数,标准偏差,总和,中位数绝对偏差,变异系数,峰度,偏度

    • 最常使用的值

    • 直方图

    • 相关性矩阵

    • 缺失值矩阵,计数,热图和缺失值树状图

    • 文本分析:了解文本数据的类别(大写,空格),脚本(拉丁,西里尔字母)和块(ASCII)

    02 使用cufflinks绘制图表

    上一个神器Pandas  Profiling可以快速帮助我们预览数据,那么这个神器cufflinks可以帮我们直接使用DataFrame快速绘制交互式图表。就像seaborn封装了matplotlib一样,cufflinks在plotly的基础上做了一进一步的包装,方法统一,参数配置简单。

    对pandas熟悉的同学可能知道pandas可以直接调用.plot()绘图,我们来看看

    df.plot()

    如果使用cufflinks来绘制,也是一行代码

    df.iplot()

    是不是交互式的图表更得人心?当然还可以直接使用DataFrame绘制其他复杂的图表

    如果在数据分析工作中经常需要数据可视化的话就考虑使用cufflinks吧!

    03 使用notebook的Magic命令

    Magic命令是Jupyter notebook中的一组便捷功能,数熟练使用该命令可以解决数据分析中的一些常见问题。使用%lsmagic就可以查看所有的Magic命令,下面我们介绍几个常用的

    %store:在不同notebook间传递变量

    不知道大家有没有经历过在一个notebook中进行数据预处理数据清洗等相关工作,在另一个notebook中进行可视化相关工作,那么怎样在绘图时直接调用另一个notebook中的数据呢?使用%store就可以轻松解决

    %store 变量 #保存变量
    %store -r 变量 #在另一个notebook中调用变量

    %who:列出全部变量

    在大型数据分析过程中,你是否遇到过忘记定义了哪些变量或者忘记某个变量是否赋值还是忘记了变量名甚至删除了赋值语句。没关系使用%who命令可以列出这个notebook中的全部变量

    %debug:交互式调试

    有时候我们写了一大段代码执行发现报错,这时调试是比较痛苦的,那么我们可以在新的一行中键入%debug并运行。这将打开一个交互式调试环境,它能直接定位到发生异常的位置。还可以检查程序中分配的变量值,并在此处执行操作

    notebook的magic命令还有很多就不一一介绍,如果感兴趣可以自己查询使用或者关注公众号『早起python』后续文章。

    04 使用jupyter快捷键

    Jupyter作为生成嵌入式代码的优秀编辑器自带了很多快捷键,熟练使用快捷键将会省去很多繁琐的鼠标点击操作,可以使用Cmd + Shift + PCtrl + Shift + P在Linux和Windows上查看有哪些快捷键。

    常用的比如

    Tab : 代码补全或缩进
    Shift-Tab : 提示
    Ctrl-] : 缩进
    Ctrl-[ : 解除缩进
    Ctrl-Home : 跳到单元开头
    Ctrl-Up : 跳到单元开头
    Ctrl-End : 跳到单元末尾
    Ctrl-Down : 跳到单元末尾
    Ctrl-Left : 跳到左边一个字首
    Ctrl-Right : 跳到右边一个字首

    05 使用pprint

    pprint 是pretty printer 的缩写,用来打印 Python 数据结构,与 print 相比,它打印出来的结构更加整齐,便于阅读。

    先来看看print

    再来看看pprint,是不是打印出来更加方便阅读

    06 掌握多种处理异常值方法

    在使用python进行数据分析时,如果数据集中出现缺失值、空值、异常值,那么数据清洗就是尤为重要的一步。因此掌握多种使用python处理异常值处理的方法,并在开始数据分析之前对异常值进行预处理会大大提升数据分析效率。

    例如,将丢失的数据替换为'*'。我们可以使用.fillna('*') 所有缺失值替换为*,或者data.fillna(axis=1,method='ffill')来横向/纵向用缺失值前面的值替换缺失值,那么更多的异常值处理方法可以参阅python数据分析之清洗数据:缺失值处理

    07 使用-i执行python脚本

    我们都知道在命令行执行python脚本可以使用python filename.py,而我推荐使用python -i filename.py去执行python脚本,因为这样在脚本执行完毕之后,python不会退出编译器。从而我们可以检查变量的值或继续进行操作。

    而如果我们的代码发生了报错的话,该命令会直接定位到代码发生异常的位置,然后我们可以更方便的去处理代码,我们来看看

    08 分批读取数据

    有时当我们使用pandas读取的数据文件非常大的时候,如果直接一次性读取全部数据会出现内存不够用的情况,所以这时我们应该对该数据进行分批次读取,并处理每一批次然后保存每一批次的结果,最后对全部批次结果进行汇总。

    import pandas as pd
    data = pd.read_csv("data.csv",chunksize=10000) #chunksize是每一批次处理的数量
    result = [] #用于储存结果
    for chunk in data:
        #写一个函数处理每一个批次
        filter_result = chunk_manipulate(chunk)
        result.append(filter_result)
    #合并所有批次
    df = pd.concat(result)
  • 相关阅读:
    input 只能输入数字
    “学生宿舍管理系统”主要内容及特点
    web_03Java ee实现定时跳转,使用C3P0,DBUtils类重构数据库操作
    DBUtils工具类的使用
    C3P0连接池
    java ee 中 Jsp 页面的定时的跳转(数字倒数)
    JSP中实现网页访问统计的方法【转】
    Java web验证码
    web_02Java ee实现验证码,网站访问次数功能
    web_01Java ee实现登陆注册功能
  • 原文地址:https://www.cnblogs.com/liuzaoqi/p/12769591.html
Copyright © 2011-2022 走看看