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

来源

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

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

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

剖析是一个帮助我们理解数据的过程,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 pdimport pandas_profiling#Pandas-Profiling 2.0.0df = 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 packagesimport pandas as pdimport pandas_profiling#Pandas-Profiling 2.0.0df = 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.pydef foo(x):    return x

在Jupyter笔记本中使用%pastebin会生成一个pastebin网址。

%matplotlib notebook

%matplotlib内联函数用于在Jupyter笔记本中呈现静态的matplotlib图。试着将inline部分替换为notebook,以获得可缩放和可调整大小的图,很容易。请确保在导入matplotlib库之前调用该函数。

%matplotlib inline vs %matplotlib notebook%runThe %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+6Out [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+7Out [1]: 15Out [1]: 17Out [1]: 19

要恢复到原来的设置:

InteractiveShell.ast_node_interactivity="last_expr"
  1. 用'i'选项运行python脚本。

从命令行运行python脚本的典型方法是: python hello.py。

然而,如果你在运行同一个脚本时再加上一个-i,例如

python -i hello.py

就会有更多的好处。让我们来看看是怎么回事。

首先,一旦程序结束,python就不会退出解释器。因此,我们可以检查变量的值和我们程序中定义的函数的正确性。

其次,我们可以很容易地调用python调试器,因为我们仍然在解释器中,方法是:1:

import pdbpdb.pm()

这将把我们带到发生异常的位置,然后我们就可以对代码进行处理了。

黑客的原始来源。

  1. 自动注释代码

Ctrl/Cmd+/自动注释单元格中的选定行。再次点击该组合将取消对同一行代码的注释。

  1. 删除是人,恢复是神

你是否曾经在Jupyter笔记本中不小心删除了一个单元格?如果是的话,那么这里有一个快捷方式,可以撤销这个删除动作。

如果你删除了一个单元格的内容,你可以通过点击CTRL/CMD+Z轻松恢复它。 如果你需要恢复整个被删除的单元格,请点击ESC+Z或EDIT > 撤销删除单元格

总结

在这篇文章中,我列出了我在使用Python和Jupyter笔记本时收集的主要技巧。我相信这些简单的小技巧会对你有用,你会从这篇文章中得到一些收获。到那时,祝你编码愉快!。

本文由 mdnice 多平台发布

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

  1. python办公自动化excel_超简单:用Python让Excel飞起来 王秀文 等 零基础 python 办公自动化 Excel 数据分析 数据可视化 9787111659761...

    前言如何获取学习资源*1章 Python快速上手1.1为什么要学习用Python控制Excel 131.2Python编程环境的搭建 131.2.1安装Python官方的编程环境IDLE 131.2. ...

  2. 如何在工作中快速成长?致工程师的10个简单技巧

    如何在工作中快速成长?致工程师的10个简单技巧 阿里妹导读:阿里有句非常经典的土话,"今天的最好表现,是明天的最低要求."如何挖掘潜能.发现更好的自己?今天,阿里巴巴高级无线开发专 ...

  3. 如何在工作中快速成长?致工程师的 10 个简单技巧

    作者 | 江建明  阿里巴巴高级无线开发专家 **导读:**精英人数的增长速度持续加快后,很多人开始焦虑,我也焦虑,深知要走出焦虑不容易,我想把走出焦虑快速成长的认知和方法写成文章分享给更多人,做成[ ...

  4. 经验分享:10个简单实用的 jQuery 代码片段

    尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...

  5. 提高C++程序运行效率的10个简单方法

    本文以C/C++程序为例讲述了程序运行效率的10个简单方法,分享给大家供大家参考之用.具体分析如下: 对于每一个程序员来说,程序的运行效率都是一个值得重视,并为之付出努力的问题.但是程序性能的优化也是 ...

  6. 10个简单步骤,完全理解SQL

    1. SQL 是一种声明式语言 首先要把这个概念记在脑中:"声明". SQL 语言是为计算机声明了一个你想从原始数据中获得什么样的结果的一个范例,而不是告诉计算机如何能够得到结果. ...

  7. 处理PHP字符串的10个简单方法

    PHP处理字符串的能力非常强大,方法也是多种多样,但有的时候你需要选择一种最简单且理想的解决方法.文章列举了10个PHP中常见的字符串处理案例,并提供了相对应的最理想的处理方法. 更多PHP内容,51 ...

  8. 阿里工程师的自我修养之:如何在工作中快速成长? 致工程师的 10 个简单技巧

    10 个快速成长的技巧 导读 一.如何阅读本文? 二.开始认识"认知升级" 1. 思考脑与反射脑 2. 习以为常 3. 时间管理:三八理论 4. 最重要的财富 5. 拿结果手段:执 ...

  9. 使用Scrum进行敏捷项目管理的10个简单步骤

    敏捷项目管理:如今,工作场所中无法逃脱."将其放入积压中." "我们将在下一个冲刺阶段进行处理." "与Scrum教练交谈." 敏捷项目管理 ...

最新文章

  1. mysql和mongodb对比互补
  2. Ubuntu 设置NAT共享网络(命令行方法)
  3. 【LeetCode】414. 第三大的数
  4. python sklearn.neural_network.MLPClassifier() 神经网络改变模型复杂度的四种方法
  5. Perl 正则表达式 html,使用正则表达式验证表单中的HTML字段使用perl
  6. SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件
  7. HDU 4647 Another Graph Game
  8. c#没有指针导致的性能问题研究一二
  9. java 线程访问控件_多线程下访问控件的方式
  10. 10.XSD 元素替换
  11. 把 mysql sql_mode 设置为严格模式的方法
  12. 开关电源环路的零极点可以在反馈端补偿吗_单片开关电源原理及应用
  13. PYTORCH-KALDI语音识别工具包
  14. botley编程机器人测评_好物测评:五岁小孩都能上手的智能编程机器人有多好玩?动手又动脑!...
  15. 什么是php递归算法_PHP递归算法(三)
  16. 接口测试工具postman
  17. gitee的下载安装以及简单使用
  18. 【转载】vue项目部署到阿里云上详解
  19. python竖线_6.1. re模块搜索时要注意竖线|的使用
  20. 适合糖友增强饱腹感的一些主食

热门文章

  1. 实验室-关于老铁整一个社会语录api与网抑云热评api(并引入百度语音tts)
  2. python彩票分析_128期老铁大乐透预测奖号:大中小码分析
  3. Python基础:进程、线程、协程(2)
  4. 二维数组的初始化(详解)
  5. python爬取快手视频 多线程下载
  6. 微信小程序反编译-获取源码
  7. Android chrisbanes-PhotoView 使用案例
  8. TCP/IP与UDP
  9. gazebo 添加16线velodyne激光雷达 详细教程
  10. 用excel做anova分析