0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一些提升或加速日常数据分析工作的技巧

数据分析与开发 来源:机器之心 2020-08-27 15:08 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

1. Pandas Profiling 2. 使用 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 的文档,发现更多方法。

Cufflinks 文档:https://plot.ly/ipython-notebooks/cufflinks/

Plotly 文档:https://plot.ly/

3. IPython 魔术命令

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

%lsmagic:找出全部命令

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

%debug:交互式 debug

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

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

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

上图中发生了什么?

我们有一个函数,它以列表为输入,并对所有的偶数取平方值。

我们运行函数,但是出了些问题。但是我们并不知道怎么回事!

对该函数使用%debug 命令。

让调试器告诉我们 x 和 type(x) 的值。

问题显而易见:我们把 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 格式。以下是我最经常使用的功能:

蓝色、时尚:

Thisisfancy!
红色、轻微慌张:

This is baaaaad!
绿色、平静:

This is gooood!
下图展示了它们的运行过程:

当你想以 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 创建不错的幻灯片了:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 可视化
    +关注

    关注

    1

    文章

    1363

    浏览量

    22894
  • 数据分析
    +关注

    关注

    2

    文章

    1523

    浏览量

    36358
  • python
    +关注

    关注

    58

    文章

    4884

    浏览量

    90301

原文标题:掌握这 7 个 Python 技巧,数据分析不怕!

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何使用 powerquad 加速器中的一些功能以及 CMSIS 原始实现中的一些功能?

    )。 如何使用 powerquad 加速器中的一些功能以及 CMSIS 原始实现中的一些功能。 Example: I do not want to call arm_mat_trans_q15 powerquad
    发表于 04-03 06:37

    2026年度课程《寿命试验、高加速寿命试验及可靠性数据统计分析实操》公开课,助您提升专业能力!

    的重要手段,寿命数据分析技术是质量可靠性人员、检验人员和设计师必备的技能,是开展可靠性工作必须的手段,为满足线技术人员对数据处理分析技术和
    的头像 发表于 02-08 09:02 957次阅读
    2026年度课程《寿命试验、高<b class='flag-5'>加速</b>寿命试验及可靠性<b class='flag-5'>数据统计分析</b>实操》公开课,助您<b class='flag-5'>提升</b>专业能力!

    API数据分析:淘宝流量来源分析,渠道优化!

    优化渠道策略。我们将使用Python作为工具,结合数据分析和统计方法,确保过程真实可靠。 1. 理解淘宝流量来源 淘宝流量主要来自多个渠道,包括: 直接访问 :用户直接输入淘宝网址从收藏夹访问。 搜索引擎 :如百度淘宝内搜索
    的头像 发表于 01-23 13:42 378次阅读
    API<b class='flag-5'>数据分析</b>:淘宝流量来源<b class='flag-5'>分析</b>,渠道优化!

    利用拼多多用户API进行粉丝数据分析,有效提升用户粘性

    这些API进行粉丝数据分析,并基于分析结果制定增强用户粘性的策略。 、 拼多多用户API概览 拼多多开放平台提供了丰富的API接口,涵盖商品、交易、用户、物流等多个维度。对于粉丝数据分析
    的头像 发表于 12-30 10:38 367次阅读
    利用拼多多用户API进行粉丝<b class='flag-5'>数据分析</b>,有效<b class='flag-5'>提升</b>用户粘性

    淘宝数据分析API:用户行为洞察,精准营销决策!

    。本文将探讨如何利用这些API实现用户行为的深度洞察,并转化为实际的营销价值。 、用户行为数据的价值:从流量到洞察 用户进入店铺浏览商品的每个动作,都蕴含着丰富的信息。传统的
    的头像 发表于 12-25 14:12 407次阅读
    淘宝<b class='flag-5'>数据分析</b>API:用户行为洞察,精准营销决策!

    经营数据分析可以通过哪些方式

    在数聚股份看来,提起经营数据分析,大家往往会联想到一些密密麻麻的数字表格,或是高级的数据建模手法,再或是华丽的数据报表。其实,“ 分析 ”本
    的头像 发表于 12-05 16:31 732次阅读

    广立微DE-G零断档重构智能数据分析

    近日,数据分析领域被则消息推上风口浪尖:家老牌软件巨头将撤出中国。在此背景下,其旗下以灵活著称的数据分析软件,在中国市场的未来将面临极大的不确定性。
    的头像 发表于 11-07 10:39 804次阅读

    如何通过日常数据判断电源纹波是否超标?

    可观测的异常表现。结合日常可获取的数据(如设备运行状态、简单监测值、故障日志),可通过以下 4 个维度间接判断,覆盖工业、消费电子等常见场景: 、通过 “设备运行状态的异常表现” 判断(最直观的
    的头像 发表于 09-23 11:06 1426次阅读
    如何通过<b class='flag-5'>日常数据</b>判断电源纹波是否超标?

    如何有效利用高光谱成像技术提升数据分析效率

    随着人工智能和大数据技术的快速发展,高光谱成像技术作为种融合光谱信息与空间影像的新兴技术,正日益成为提升数据分析效率的重要工具。在农业监测、环境保护、矿产勘探等多个行业中,高光谱成像
    的头像 发表于 09-11 16:13 979次阅读
    如何有效利用高光谱成像技术<b class='flag-5'>提升</b><b class='flag-5'>数据分析</b>效率

    普迪飞 Exensio®数据分析平台 | 铸就良率提升与量产加速之路

    ManufacturingAnalytics(M-A)是Exensio数据分析平台中的四个核心模块之。M-A模块旨在帮助集成器件制造商(IDM)、代工厂(Foundry)和无晶圆厂半导体公司
    的头像 发表于 08-19 13:53 1203次阅读
    普迪飞 Exensio®<b class='flag-5'>数据分析</b>平台 | 铸就良率<b class='flag-5'>提升</b>与量产<b class='flag-5'>加速</b>之路

    普迪飞 Exensio®数据分析平台 | Test Operations解锁半导体测试新纪元

    TestOperations是Exensio数据分析平台的四个主要模块之。T-Ops模块旨在帮助集成器件制造商(IDM)、无晶圆厂半导体公司(Fabless)和外包半导体(产品)封测厂(OSAT
    的头像 发表于 08-19 13:53 1657次阅读
    普迪飞 Exensio®<b class='flag-5'>数据分析</b>平台 | Test Operations解锁半导体测试新纪元

    如何通过数据分析识别设备故障模式?

    通过数据分析识别设备故障模式,本质是从声振温等多维数据中提取故障特征,建立 “数据特征 - 故障类型” 的映射关系,核心可通过特征提取、模式匹配、趋势分析三步实现,精准定位故障根源与发
    的头像 发表于 08-19 11:14 1113次阅读
    如何通过<b class='flag-5'>数据分析</b>识别设备故障模式?

    构建自定义电商数据分析API

      在电商业务中,数据是驱动决策的核心。随着数据量的增长,企业需要实时、灵活的分析工具来监控销售、用户行为和库存等指标。个自定义电商数据分析
    的头像 发表于 07-17 14:44 727次阅读
    构建自定义电商<b class='flag-5'>数据分析</b>API

    AI数据分析仪设计原理图:RapidIO信号接入 平板AI数据分析

    AI数据分析仪, 平板数据分析仪, 数据分析仪, AI边缘计算, 高带宽数据输入
    的头像 发表于 07-17 09:20 867次阅读
    AI<b class='flag-5'>数据分析</b>仪设计原理图:RapidIO信号接入 平板AI<b class='flag-5'>数据分析</b>仪

    如何使用协议分析仪进行数据分析与可视化

    使用协议分析仪进行数据分析与可视化,需结合数据捕获、协议解码、统计分析及可视化工具,将原始数据转化为可解读的图表和报告。以下是详细步骤及关键
    发表于 07-16 14:16