10个简单的hacker技术加速你在Python中的数据分析
来源
技巧和窍门,特别是在编程领域,可以非常有用。有时,一个小黑客既可以节省时间,也可以挽救生命。一个小的快捷方式或附加功能有时会被证明是上帝的恩赐,可以成为一个真正的生产力的助推器。
因此,这里有一些我最喜欢的技巧和窍门,我已经使用并以本文的形式汇编在一起。有些可能是众所周知的,有些可能是新的,但我确信它们在你下次从事数据分析项目时将非常方便。
剖析是一个帮助我们理解数据的过程,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")
更多细节和例子请参考文档。
.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格式。它对于在单元格中写数学公式和方程式很有用。
查找和消除错误 交互式调试器也是一个神奇的函数,但我给它一个自己的类别。如果你在运行代码单元时得到一个异常,在新的一行中输入%debug
并运行它。这将打开一个交互式的调试环境,把你带到发生异常的位置。你还可以检查程序中分配的变量的值,也可以在这里进行操作。要退出调试器,按q键。
打印也可以是漂亮的 如果你想为你的数据结构产生美观的表示,pprint是一个很好的模块。它在打印字典或JSON数据时特别有用。让我们看看一个同时使用print和pprint来显示输出的例子。
让注释脱颖而出。 我们可以在你的Jupyter笔记本中使用警报注解框来突出重要的东西或任何需要突出的东西.
注释的颜色取决于所指定的警报类型。只要在需要突出显示的单元格中添加以下任何或全部代码即可。
Blue Alert Box: info
"alert alert-block alert-info">
Tip: Use blue boxes (alert-info) for tips and notes.
If it’s a note, you don’t have to include the word “Note”.
Yellow Alert Box: Warning
"alert alert-block alert-warning">
Example: Yellow Boxes are generally used to include additional examples or mathematical formulas.
Green Alert Box: Success
"alert alert-block alert-success">
Use green box only when necessary like to display links to related content.
Red Alert Box: Danger
"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.
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"
从命令行运行python脚本的典型方法是: python hello.py。
然而,如果你在运行同一个脚本时再加上一个-i,例如
python -i hello.py
就会有更多的好处。让我们来看看是怎么回事。
首先,一旦程序结束,python就不会退出解释器。因此,我们可以检查变量的值和我们程序中定义的函数的正确性。
其次,我们可以很容易地调用python调试器,因为我们仍然在解释器中,方法是:1:
import pdb
pdb.pm()
这将把我们带到发生异常的位置,然后我们就可以对代码进行处理了。
黑客的原始来源。
Ctrl/Cmd+/自动注释单元格中的选定行。再次点击该组合将取消对同一行代码的注释。
你是否曾经在Jupyter笔记本中不小心删除了一个单元格?如果是的话,那么这里有一个快捷方式,可以撤销这个删除动作。
如果你删除了一个单元格的内容,你可以通过点击CTRL/CMD+Z轻松恢复它。 如果你需要恢复整个被删除的单元格,请点击ESC+Z或EDIT > 撤销删除单元格
总结
在这篇文章中,我列出了我在使用Python和Jupyter笔记本时收集的主要技巧。我相信这些简单的小技巧会对你有用,你会从这篇文章中得到一些收获。到那时,祝你编码愉快!。
本文由 mdnice 多平台发布