加速Python数据分析的10个简单技巧(上)
2019年06月25日 由 sunlei 发表
386712
0
总有一些小贴士和技巧在编程领域是非常有用的。有时,一个小技巧可以节省时间甚至可以挽救生命。一个小的快捷方式或附加组件有时会被证明是天赐之物,并能真正提高生产力。因此,我总结了一些我最喜欢的一些贴士和技巧,我将它们以本文的形式一起使用和编译。有些可能是大家相当熟悉的,有些可能是比较新的,但我确信它们将在下一次您处理数据分析项目时派上用场。
1. 分析pandas dataframe
分析是一个帮助我们理解数据的过程,而pandas分析是一个python包,它正好做到了这一点。这是一种对Pandas Dataframe进行探索性数据分析的简便、快速的方法。panda df.describe()和df.info()函数通常用作EDA过程的第一步。但是,它只提供了一个非常基本的数据概览,对于大型数据集没有多大帮助。另一方面,panda分析函数用一行代码显示了很多信息,这也可以在交互式HTML报告中显示。
对于给定的数据集,pandas分析包计算以下统计数据:
[caption id="attachment_41502" align="aligncenter" width="495"]
统计计算机-熊猫剖析包[/caption]
安装
pip install pandas-profiling
or
conda install -c anaconda pandas-profiling
用法
让我们使用古老的Titanic数据集来演示通用的Python分析器的功能。
#importing the necessary packages
import pandas as pd
import pandas_profiling
df = pd.read_csv('titanic/train.csv')
pandas_profiling.ProfileReport(df)
这一行代码就是在Jupyter笔记本中显示数据分析报告所需的全部代码。报告非常详细,包括必要图表。
还可以使用以下代码将报告导出到交互式HTML文件中。
profile = pandas_profiling.ProfileReport(df)
profile.to_file(outputfile="Titanic data profiling.html")
2. 将互动带到pandas plots
pandas有一个内置的.plot()函数作为DataFrame类的一部分。然而,使用该函数呈现的可视化效果并不具有交互性,这使得它的吸引力降低。相反,也不能排除使用pandas. datafram .plot()函数绘制图表的方便性。如果我们不需要对代码进行重大修改,就可以像用pandas绘制图表那样巧妙地绘制交互式图表,那会怎么样呢?实际上,你可以在Cufflinks库的帮助下做到这一点。
Cufflinks库将plotly的力量与熊猫的灵活性结合起来,便于绘制。现在让我们来看看如何安装这个库并让它在pandas中工作。
安装
pip install plotly # Plotly is a pre-requisite before installing cufflinks
pip install cufflinks
用法
#importing Pandas
import pandas as pd
#importing plotly and cufflinks in offline mode
import cufflinks as cf
import plotly.offline
cf.go_offline()
cf.set_config_file(offline=False, world_readable=True)
是时候看看泰坦尼克数据集的神奇之处了。
df.iplot()
[caption id="attachment_41505" align="aligncenter" width="642"]
+6df.iplot() vs df.plot()[/caption]
下边的可视化显示的是静态图表,而上边的图表是交互式的,并且更加详细,所有这些都没有对语法进行任何重大更改。
3. 一点点魔法
Magic命令是jupyter笔记本中的一组方便的函数,旨在解决标准数据分析中的一些常见问题。在%lsmagic的帮助下,您可以看到所有可用的magic。
[caption id="attachment_41506" align="aligncenter" width="718"]
所有可用magic函数的列表[/caption]
Magic命令有两种类型:line magics和cell magics,前者以单个%字符作为前缀,并在一行输入上进行操作;后者与double %%前缀关联,并在多行输入上进行操作。如果将Magic函数设置为1,则无需键入初始%即可调用。
让我们来看看在常见的数据分析任务中可能有用的一些方法:
%pastebin将代码上载到pastebin并返回url。Pastebin是一个在线内容托管服务,我们可以在其中存储纯文本,如源代码片段,然后url可以与他人共享。事实上,Github gist也类似于pastebin,尽管有版本控制。
考虑一个包含以下内容的python script file.py:
#file.py
def foo(x):
return x
使用Jupyter笔记本中的%Pastebin生成Pastebin URL。
%matplotlib inline函数用于呈现jupyter笔记本中的静态matplotlib绘图。尝试用笔记本替换内嵌部件,以轻松实现可缩放和可调整大小的绘图。确保在导入Matplotlib库之前调用了函数。
[caption id="attachment_41508" align="aligncenter" width="834"]
%matplotlib inline vs %matplotlib notebook[/caption]
%run函数在一个笔记本中运行一个python脚本。
%run file.py
%%writefile将单元格的内容写入文件。在这里,代码将被写入一个名为foo.py的文件,并保存在当前目录中。
%%latex 函数将单元格内容呈现为乳胶。它可用于在单元中编写数学公式和方程。
4.发现和消除错误
交互式调试器也是一个神奇的函数,但是我已经给了它提供一个自己的类别。如果在运行代码单元格时出现异常,请在新行中键入%debug并运行它。这将打开一个交互式调试环境,将您带到异常发生的位置。您还可以检查程序中分配的变量的值,并在这里执行操作。要退出调试器,请按q。
5.印刷也可以很漂亮
如果您想为数据结构生成美观的表示形式,pprint是首选模块。它在打印字典或JSON数据时特别有用。让我们看一个同时使用print和pprint显示输出的示例。
这又是一篇很长的文章,这次先透露5个技巧,其余的5个我明天继续更新。