7个Pandas&Jupyter特殊技巧,让Python数据分析更轻松

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 7个Pandas&Jupyter特殊技巧,让Python数据分析更轻松

本文列举了一些提升日常数据分析工作的技巧,包括:


1. Pandas Profiling2. 使用 Cufflinks 和 Plotly 绘制 Pandas 数据3. IPython 魔术命令4. Jupyter 中的格式编排5. Jupyter 快捷键6. 在 Jupyter(或 IPython)中使一个单元同时有多个输出7. 为 Jupyter Notebook 即时创建幻灯片


1. Pandas Profiling


该工具效果明显。下图展示了调用 df.profile_report() 这一简单方法的结果:


使用该工具只需安装和导入 Pandas Profiling 包。


本文不再详述这一工具,如欲了解更多,请阅读:https://towardsdatascience.com/exploring-your-data-with-just-1-line-of-python-4b35ce21a82d

2. 使用 Cufflinks 和 Plotly 绘制 Pandas 数据


「经验丰富的」数据科学家或数据分析师大多对 matplotlib 和 pandas 很熟悉。也就是说,你只需调用 .plot() 方法,即可快速绘制简单的 pd.DataFrame 或 pd.Series:

有点无聊?


这已经很好了,不过是否可以绘制一个交互式、可缩放、可扩展的全景图呢?是时候让 Cufflinks* *出马了!(Cufflinks 基于 Plotly 做了进一步的包装。)


在环境中安装 Cufflinks,只需在终端中运行! pip install cufflinks --upgrade 即可。查看下图:


效果好多了!


注意,上图唯一改变的是 Cufflinks cf.go_offline() 的导入和设置,它将 .plot() 方法变为 .iplot()。


其他方法如 .scatter_matrix() 也可以提供非常棒的可视化结果:

需要做大量数据可视化工作的朋友,可以阅读 Cufflinks 和 Plotly 的文档,发现更多方法。


3. IPython 魔术命令


IPython 的「魔术」是 IPython 基于 Python 标准语法的一系列提升。魔术命令包括两种方法:行魔术命令(line magics):以 % 为前缀,在单个输入行上运行;单元格魔术命令(cell magics):以 %% 为前缀,在多个输入行上运行。下面列举了 IPython 魔术命令提供的一些有用功能:


%lsmagic:找出全部命令


如果你只记得一个魔术命令,那必须得是这一个。执行 %lsmagic 命令将提供所有可用魔术命令的列表:


%debug:交互式 debug


这可能是我最常使用的魔术命令了。


大部分数据科学家都遇到过这种情况:执行的代码块一直 break,你绝望地写了 20 个 print() 语句,想输出每个变量的内容。然后,当你最终修复问题后,你还得返回并再次删除所有 print() 语句。


不过以后再也不用这样了。遇到问题后只需执行 %debug 命令,即可执行想要运行的任意代码部分:



上图中发生了什么?


  1. 我们有一个函数,它以列表为输入,并对所有的偶数取平方值。
  2. 我们运行函数,但是出了些问题。但是我们并不知道怎么回事!
  3. 对该函数使用%debug 命令。
  4. 让调试器告诉我们 x 和 type(x) 的值。
  5. 问题显而易见:我们把'6'作为字符串输入到函数中了!


这对于更复杂的函数非常有用。


%store:在 notebook 之间传递变量


这个命令也很酷。假设你花了一些时间清洗 notebook 中的数据,现在你想在另一个 notebook 中测试一些功能,那么你是在同一个 notebook 中实现该功能,还是保存数据并在另一个 notebook 中加载数据呢?使用%store 命令后,这些操作都不需要!该命令将存储变量,你可以在其他任意 notebook 中检索该变量:



  • %store [variable] 存储变量。
  • %store -r [variable] 读取/检索存储变量。



%who:列出所有全局变量。


你是否遇到过,为变量赋值后却忘记变量名的情况?或者不小心删掉了负责为变量赋值的单元格?使用%who 命令,你可以得到所有全局变量的列表:


%%time:计时魔法命令


使用该命令可以获取所有计时信息。只需对任意可执行代码应用%%time 命令,你就可以得到如下输出:



%%writefile:向文件写入单元格内容


在 notebook 中写复杂函数或类,且想将其保存到专属文件中时,该魔法命令非常有用。只需为函数或类的单元格添加 %%writefile 前缀和想要保存到的文件名即可:


如上所示,我们可以将创建的函数保存到 utils.py 文件中,然后就可以随意导入了。在其他 notebook 中也可以这样,只要与 utils.py 文件属于同一个目录即可。


4. Jupyter 中的格式编排


这个工具很酷!Jupyter 考虑到 markdown 中存在 HTML / CSS 格式。以下是我最经常使用的功能:


蓝色、时尚:

<div class="alert alert-block alert-info">   This is <b>fancy</b>!</div>


红色、轻微慌张:

<div class="alert alert-block alert-danger">   This is <b>baaaaad</b>!</div>


绿色、平静:


<div class="alert alert-block alert-success"> This is <b>gooood</b>!</div>

下图展示了它们的运行过程:


当你想以 Notebook 格式呈现一些发现时,这非常有用!

5. Jupyter 快捷键


想了解和学习键盘快捷键,你可以使用命令面板:Ctrl + Shift + P,获取 notebook 所有功能的列表。下面选取了几个最基础的命令:


  • Esc:进入命令模式。在命令模式内,你可以使用方向键在 notebook 内进行导航。


在命令模式内:


  • A 和 B:在当前单元格上方(Above)或下方(Below)插入新的单元格。
  • M:当前单元格转入 Markdown 状态。
  • Y:当前单元格转入 code 状态。
  • D,D:删除当前单元格。
  • Enter:当前单元格回到编辑模式。


在编辑模式内:


  • Shift + Tab:为你在当前单元格中键入的对象提供文档字符串(文档),持续使用该快捷键,可循环使用文档模式。
  • Ctrl + Shift + -:在光标所在处分割当前单元格。
  • Esc + F:查找并替换代码(不包括输出)。
  • Esc + O:切换单元格输出。


选择多个单元格:


  • Shift + Down 和 Shift + Up:选中下方或上方的单元格。
  • Shift + M:合并选中单元格。


注意,选中多个单元格后,你可以批量执行删除/复制/剪切/粘贴/运行操作。


6. 在 Jupyter(或 IPython)中使一个单元同时有多个输出


想展示 pandas DataFrame 的 .head() 和 .tail(),但由于创建运行 .tail() 方法的额外代码单元过于麻烦而不得不中途放弃,你是否有过这样的经历?现在不用怕了,你可以使用以下代码行展示你想展示的输出:



from IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = "all"


下图展现了多个输出的结果:



7. 为 Jupyter Notebook 即时创建幻灯片


使用 RISE,你可以仅通过一次按键将 Jupyter Notebook 即时转变为幻灯片。而且 notebook 仍然处于活跃状态,你可以在展示幻灯片的同时执行实时编码!

要想使用该工具,你只需通过 conda 或 pip 安装 RISE 即可。


conda install -c conda-forge rise

或者

pip install RISE


现在,你可以点击新按钮,为 notebook 创建不错的幻灯片了:

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
29天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
【10月更文挑战第42天】本文是一篇技术性文章,旨在为初学者提供一份关于如何使用Python进行数据分析的入门指南。我们将从安装必要的工具开始,然后逐步介绍如何导入数据、处理数据、进行数据可视化以及建立预测模型。本文的目标是帮助读者理解数据分析的基本步骤和方法,并通过实际的代码示例来加深理解。
57 3
|
1天前
|
数据采集 数据可视化 索引
Pandas数据应用:股票数据分析
本文介绍了如何使用Pandas库进行股票数据分析。首先,通过pip安装并导入Pandas库。接着,从本地CSV文件读取股票数据,并解决常见的解析错误。然后,利用head()、info()等函数查看数据基本信息,进行数据清洗,处理缺失值和重复数据。再者,结合Matplotlib和Seaborn进行数据可视化,绘制收盘价折线图。最后,进行时间序列分析,设置日期索引、重采样和计算移动平均线。通过这些步骤,帮助读者掌握Pandas在股票数据分析中的应用。
22 5
|
1月前
|
存储 数据可视化 数据挖掘
使用Python进行数据分析和可视化
本文将引导你理解如何使用Python进行数据分析和可视化。我们将从基础的数据结构开始,逐步深入到数据处理和分析的方法,最后通过实际的代码示例来展示如何创建直观的数据可视化。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。让我们一起探索数据的世界,发现隐藏在数字背后的故事!
|
1月前
|
存储 数据可视化 数据挖掘
Python数据分析项目:抖音短视频达人粉丝增长趋势
Python数据分析项目:抖音短视频达人粉丝增长趋势
|
1月前
|
数据采集 存储 数据可视化
Python数据分析:揭秘"黑神话:悟空"Steam用户评论趋势
Python数据分析:揭秘"黑神话:悟空"Steam用户评论趋势
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第42天】本文将介绍如何使用Python进行数据分析和可视化。我们将从数据导入、清洗、探索性分析、建模预测,以及结果的可视化展示等方面展开讲解。通过这篇文章,你将了解到Python在数据处理和分析中的强大功能,以及如何利用这些工具来提升你的工作效率。
|
1月前
|
数据采集 数据可视化 数据挖掘
深入浅出:使用Python进行数据分析的基础教程
【10月更文挑战第41天】本文旨在为初学者提供一个关于如何使用Python语言进行数据分析的入门指南。我们将通过实际案例,了解数据处理的基本步骤,包括数据的导入、清洗、处理、分析和可视化。文章将用浅显易懂的语言,带领读者一步步掌握数据分析师的基本功,并在文末附上完整的代码示例供参考和实践。
|
1月前
|
数据采集 数据可视化 数据挖掘
掌握Python数据分析,解锁数据驱动的决策能力
掌握Python数据分析,解锁数据驱动的决策能力
|
1月前
|
数据采集 数据可视化 数据挖掘
Python数据分析:Pandas库实战指南
Python数据分析:Pandas库实战指南