美文网首页
10个简单的hacker加速你在Python中的数据分析

10个简单的hacker加速你在Python中的数据分析

作者: Python_Camp | 来源:发表于2022-09-29 15:52 被阅读0次

    10个简单的hacker技术加速你在Python中的数据分析

    来源

    技巧和窍门,特别是在编程领域,可以非常有用。有时,一个小黑客既可以节省时间,也可以挽救生命。一个小的快捷方式或附加功能有时会被证明是上帝的恩赐,可以成为一个真正的生产力的助推器。

    因此,这里有一些我最喜欢的技巧和窍门,我已经使用并以本文的形式汇编在一起。有些可能是众所周知的,有些可能是新的,但我确信它们在你下次从事数据分析项目时将非常方便。

    1. 对pandas数据框架进行分析

    剖析是一个帮助我们理解数据的过程,Pandas剖析是一个Python包,正是这样做的。它是对Pandas Dataframe进行探索性数据分析的一种简单而快速的方法。

    pandas df.describe()df.info()函数通常被用作EDA过程中的第一步。

    然而,它只能给出数据的一个非常基本的概述,在大数据集的情况下没有什么帮助。

    另一方面,Pandas Profiling函数用df.profile_report()扩展了pandas DataFrame,用于快速数据分析。它只用一行代码就能显示大量的信息,而且是在一个交互式的HTML报告中。

    对于一个给定的数据集,pandas剖析包会计算以下的统计数据。

    剖析包计算的统计数据。
    安装

    pip install pandas-profiling
    

    conda install -c anaconda pandas-profiling
    

    使用方法
    让我们使用古老的泰坦尼克号数据集来展示多功能的python分析器的能力。

    导入必要的软件包

    import pandas as pd
    import pandas_profiling
    #Pandas-Profiling 2.0.0
    df = pd.read_csv('titanic/train.csv')
    df.profile_report()
    

    这一行代码就是你需要在Jupyter笔记本中显示数据分析报告的全部内容。该报告相当详细,包括必要的图表。

    该报告也可以通过以下代码导出为一个交互式的HTML文件。

    profile = df.profile_report(title='Pandas Profiling Report')
    profile.to_file(outputfile="Titanic data profiling.html")
    

    更多细节和例子请参考文档。

    1. 为Pandas图谱带来交互性
      Pandas有一个内置的.plot()函数作为DataFrame类的一部分。然而,用这个函数渲染的可视化效果并不是交互式的,这使得它的吸引力大打折扣。

    相反,也不能排除用pandas.DataFrame.plot()函数来绘制图表的便利性。如果我们可以用pandas绘制类似plotly的交互式图表,而不必对代码进行重大修改呢?那么,在Cufflinks库的帮助下,你实际上可以做到这一点。

    Cufflinks库将 plotly 的功能与 pandas 的灵活性结合起来,以方便绘图。现在让我们来看看如何安装这个库并让它在 pandas 中工作。

    安装

    pip install plotly 
    # Plotly是安装cufflinks之前的前提条件
    
    pip install cufflinks
    

    使用方法

    #importing the necessary packages
    import pandas as pd
    import pandas_profiling
    #Pandas-Profiling 2.0.0
    df = pd.read_csv('titanic/train.csv')
    df.profile_report()
    

    是时候看看泰坦尼克号数据集的魔力了。

    df.iplot()
    
    
    df.iplot() vs df.plot()
    

    右边的可视化显示的是静态图表,而左边的图表是交互式的,而且更详细,所有这些都没有在语法上有任何重大改变。

    点击这里查看更多的例子。

    3.A Dash of Magic
    魔术命令是Jupyter笔记本中的一组便捷功能,旨在解决标准数据分析中的一些常见问题。你可以在%lsmagic的帮助下看到所有可用的魔法。

    所有可用的魔法函数的列表
    魔法命令有两种:行魔法,前缀为单个%字符,对单行输入进行操作;单元魔法,与双%的前缀相关,对多行输入进行操作。魔术函数如果设置为1,则无需输入初始的%即可调用。

    让我们看看其中一些在常见的数据分析任务中可能有用的函数。

    % pastebin
    

    %pastebin将代码上传到Pastebin并返回URL。
    Pastebin是一个在线内容托管服务,我们可以在这里存储像源代码片段这样的纯文本,然后URL可以与他人分享。事实上,Github的Gist也类似于Pastebin,尽管有版本控制。

    考虑一个有以下内容的python脚本file.py。

    #file.py
    def foo(x):
        return x
    

    在Jupyter笔记本中使用%pastebin会生成一个pastebin网址。

    %matplotlib notebook

    %matplotlib内联函数用于在Jupyter笔记本中呈现静态的matplotlib图。试着将inline部分替换为notebook,以获得可缩放和可调整大小的图,很容易。请确保在导入matplotlib库之前调用该函数。

    %matplotlib inline vs %matplotlib notebook
    %run
    The %run function runs a python script inside a notebook.
    
    %run file.py
    %%writefile
    

    %%writefile将一个单元格的内容写到一个文件中。这里的代码将被写入一个名为foo.py的文件并保存在当前目录下。

    %latex
    %%latex函数将单元格的内容渲染成LaTeX格式。它对于在单元格中写数学公式和方程式很有用。

    1. 查找和消除错误
      交互式调试器也是一个神奇的函数,但我给它一个自己的类别。如果你在运行代码单元时得到一个异常,在新的一行中输入%debug并运行它。这将打开一个交互式的调试环境,把你带到发生异常的位置。你还可以检查程序中分配的变量的值,也可以在这里进行操作。要退出调试器,按q键。
    1. 打印也可以是漂亮的
      如果你想为你的数据结构产生美观的表示,pprint是一个很好的模块。它在打印字典或JSON数据时特别有用。让我们看看一个同时使用print和pprint来显示输出的例子。
    1. 让注释脱颖而出。
      我们可以在你的Jupyter笔记本中使用警报注解框来突出重要的东西或任何需要突出的东西.

    注释的颜色取决于所指定的警报类型。只要在需要突出显示的单元格中添加以下任何或全部代码即可。

    Blue Alert Box: info
    <div class="alert alert-block alert-info">
    <b>Tip:</b> Use blue boxes (alert-info) for tips and notes. 
    If it’s a note, you don’t have to include the word “Note”.
    </div>
    
    Yellow Alert Box: Warning
    <div class="alert alert-block alert-warning">
    <b>Example:</b> Yellow Boxes are generally used to include additional examples or mathematical formulas.
    </div>
    
    Green Alert Box: Success
    <div class="alert alert-block alert-success">
    Use green box only when necessary like to display links to related content.
    </div>
    
    
    Red Alert Box: Danger
    <div class="alert alert-block alert-danger">
    It is good to avoid red boxes but can be used to alert users to not delete some important part of code etc. 
    </div>
    
    
    1. 打印一个单元格的所有输出
      考虑到Jupyter笔记本的一个单元格包含以下几行代码。
    In  [1]: 10+5          
             11+6
    Out [1]: 17
    

    这是单元格的一个正常属性,只有最后一个输出被打印出来,对于其他输出,我们需要添加print()函数。那么,事实证明,我们只需在笔记本的顶部添加以下片段,就可以打印所有的输出。

    现在,所有的输出都被一个接一个地打印出来。

    from IPython.core.interactiveshell 
    import InteractiveShell  
    InteractiveShell.ast_node_interactivity = "all"
    Now all the outputs get printed one after the other.
    
    In  [1]: 10+5          
             11+6
             12+7
    Out [1]: 15
    Out [1]: 17
    Out [1]: 19
    

    要恢复到原来的设置:

    InteractiveShell.ast_node_interactivity="last_expr"
    
    1. 用'i'选项运行python脚本。

    从命令行运行python脚本的典型方法是: python hello.py。

    然而,如果你在运行同一个脚本时再加上一个-i,例如

    python -i hello.py
    

    就会有更多的好处。让我们来看看是怎么回事。

    首先,一旦程序结束,python就不会退出解释器。因此,我们可以检查变量的值和我们程序中定义的函数的正确性。

    其次,我们可以很容易地调用python调试器,因为我们仍然在解释器中,方法是:1:

    import pdb
    pdb.pm()
    

    这将把我们带到发生异常的位置,然后我们就可以对代码进行处理了。

    黑客的原始来源。

    1. 自动注释代码

    Ctrl/Cmd+/自动注释单元格中的选定行。再次点击该组合将取消对同一行代码的注释。

    1. 删除是人,恢复是神

    你是否曾经在Jupyter笔记本中不小心删除了一个单元格?如果是的话,那么这里有一个快捷方式,可以撤销这个删除动作。

    如果你删除了一个单元格的内容,你可以通过点击CTRL/CMD+Z轻松恢复它。
    如果你需要恢复整个被删除的单元格,请点击ESC+Z或EDIT > 撤销删除单元格

    总结

    在这篇文章中,我列出了我在使用Python和Jupyter笔记本时收集的主要技巧。我相信这些简单的小技巧会对你有用,你会从这篇文章中得到一些收获。到那时,祝你编码愉快!。

    本文由mdnice多平台发布

    相关文章

      网友评论

          本文标题:10个简单的hacker加速你在Python中的数据分析

          本文链接:https://www.haomeiwen.com/subject/tedkartx.html