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

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

来源

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

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

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

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

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

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

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

alt

对于一个给定的数据集,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键。

  2. 打印也可以是漂亮的 如果你想为你的数据结构产生美观的表示,pprint是一个很好的模块。它在打印字典或JSON数据时特别有用。让我们看看一个同时使用print和pprint来显示输出的例子。

  3. 让注释脱颖而出。 我们可以在你的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 多平台发布

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值