python数据分析神器_太香了!墙裂推荐6个Python数据分析神器!!

hello,大家好我是东哥!

用Python处理数据大家都不陌生了,属常规操作,但常规之下还是也有些暗藏技巧的,本篇东哥分享6个好玩高效的操作,帮助大家提高效率。

一、Pandas Profiling

Pandas Profiling提供数据的一个整体报告,是一个帮助我们理解数据的过程。它可以简单快速地对Pandas的数据框数据进行探索性数据分析。

其实,Pandas中df.describe()和df.info()函数也可以实现数据探索过程第一步。但它们只提供了对数据非常基本的概述。而Pandas中的Profiling功能简单通过一行代码就能显示大量信息,同时还能生成交互式HTML报告。

对于给定的数据集,Pandas中的profiling包计算了以下统计信息:

由Pandas Profiling包计算出的统计信息包括直方图、众数、相关系数、分位数、描述统计量、其他信息包括类型、单一变量值、缺失值等。

安装

用pip和conda即可,使用方法很简单,如下:

pip install pandas-profiling

conda install -c anaconda pandas-profiling

用法

以titanic数据集来演示profiling的功能。

import pandas as pd

import pandas_profiling

df = pd.read_csv('titanic/train.csv')

pandas_profiling.ProfileReport(df)

除了导入库之外只需要一行代码,就能显示数据报告的详细信息,包括必要的图表。

还可以使用以下代码将报告导出到交互式HTML文件中。

profile = pandas_profiling.ProfileReport(df)

profile.to_file(outputfile="Titanic data profiling.html")

二、pretty print

pprint是Python中的内置模块。它能够以格式清晰,可读性强漂亮格式打印任意数据结构。一个例子对比下print和pprint。

# 定义个字典,测试用

my_dict = {'Student_ID': 34,'Student_name' : 'Tom', 'Student_class' : 5,

'Student_marks' : {'maths' : 92,

'science' : 95,

'social_science' : 65,

'English' : 88}

}

print

# 正常的print

print(my_dict)

# 输出结果如下:

{'Student_ID': 34, 'Student_name': 'Tom', 'Student_class': 5, 'Student_marks': {'maths': 92, 'science': 95, 'social_science': 65, 'English': 88}}

pprint

# 使用pprint输出

import pprint

pprint.pprint(my_dict)

# 输出结果如下:

{'Student_ID': 34,

'Student_class': 5,

'Student_marks': {'English': 88,

'maths': 92,

'science': 95,

'social_science': 65},

'Student_name': 'Tom'}

可以清楚看到pprint的优势之处,数据结构一目了然啊。

三、Python Debugger

交互式调试器也是一个神奇的函数,如果在运行代码单元格时出现报错,可以在新行中键入%debug运行它。这将打开一个交互式调试环境,自动转到报错发生的位置,并且还可以检查程序中分配的变量值并执行操作。要退出调试器,按q。比如下面这个例子。

x = [1,2,3]

y = 2

z = 5

result = y+z

print(result)

result2 = x+y

print(result2)

大家应该能看出x+y肯定会报错,因为二者不是一个类型,无法进行运算操作。然后我们敲入%debug。

%debug

这时会出现对话框让我们互交式输入命令,比如我们可以像下面这样做。

四、Cufflinks

这个东哥在之前也介绍过,对于数据探索的可视化分析超级好用,低代码量便可生成漂亮的可视化图形。下面举一个例子,详细的可参见这篇Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks。

cufflinks在plotly的基础上做了一进一步的包装,方法统一,参数配置简单。其次它还可以结合pandas的dataframe随意灵活地画图。可以把它形容为pandas like visualization。

比如下面的lins线图。

import pandas as pd

import cufflinks as cf

import numpy as np

cf.set_config_file(offline=True)

cf.datagen.lines(1,500).ta_plot(study='sma',periods=[13,21,55])

再比如box箱型图。

cf.datagen.box(20).iplot(kind='box',legend=False)

五、Pyforest

这是一个能让你偷懒的import神器,可以提前在配置文件里写好要导入的三方库,这样每次编辑脚本的时候就省去了开头的一大堆import 各种库,对于有常用和固定使用库的朋友来说无疑也是提高效率的工具之一。

pyforest支持大部分流行的数据科学库,比如pandas,numpy,matplotlib,seaborn,sklearn,tensorflow等等,以及常用的辅助库如os,sys,re,pickle等。此用法对于自己频繁调试很方便,但对于那些频繁跨环境比如和其它人共享脚本调试的时候就不是很好用了,因为别人不一定使用它。

六、Jupyter notebook的笔记高亮

此方法仅适用于Jupyter notebook中,当我们想高亮笔记,让笔记变得美观的时候,这个方法非常的香。

笔记的高亮的颜色根据不同情况分为几种,前端的同学一看就明白,区别就是每种颜色代码的class类型不一样,其它只要在div标签中写内容就好。下面看下用法。

蓝色代表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”.

黄色代表warning

Example: Yellow Boxes are generally used to include additional examples or mathematical formulas.

绿色代表success

Use green box only when necessary like to display links to related content.

红色代表danger

It is good to avoid red boxes but can be used to alert users to not delete some important part of code etc.

这里有个小提示东哥提示下,如果你直接复制到jupyter notebook中可能会报错,因为默认是代码的格式,所以你需要选中单元格按Esc变成可切换模式,然后再按Y切换成文本模式。这时候再运行shift+ok就ok了。看下面这个例子。

以上就是本次分享内容,欢迎各位朋友点赞留言收藏。

欢迎关注我的个人公众号:Python数据科学

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355735.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第五天敏捷冲刺

每日任务: 1.本次会议为第三次 Meeting会议; 2.由于本次会议人员都有各自的事情,所以都通过私聊组长来,讨论接下来的任务; 3.今天的代码部分coding:https://git.coding.net/ysh0904/wl2ban.git 4.燃尽图: 5…

jsf集成spring_Spring和JSF集成:分页

jsf集成spring使用大型数据集时,通常需要以分页格式显示数据。 分页是一个有趣的问题,因为它倾向于跨越应用程序的所有层,从视图层通过应用程序服务一直到对数据库的原始调用。 在获取分页数据时,有一些非常好的解决方案。 如果您…

mysql timestamp 并发_MySQL 实现 EF Code First TimeStamp/RowVersion 并发控制

在将项目迁移到MySQL 5.6.10数据库上时,遇到和迁移到PostgreSQL数据库相同的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现。先上网搜索解决方案,找到Ak.Ini的博文http://www.cnblogs.com/akini/arc…

python元组操作_Python:元组操作总结

Python的元组和列表类似,不同之处在于元组中的元素不能修改(因此元组又称为只读列表),且元组使用小括号而列表使用中括号,如下: 1 tup1(physics,chemistry,1997,2000)2 tup2(1,2,3,4,5,6) 特别注意: 1、元组中只包含一个元素时,需…

Java函数式编程:Javaslang入门

Java是一门古老的语言,并且有很多新手在Java(JVM)领域挑战它们。 但是Java 8到来并带来了一些有趣的功能。 这些有趣的功能使编写新的惊人框架(如Spark Web框架或Javaslang)成为可能 。 在本文中,我们将介…

mysql语句表名大小写敏感_Mysql 表名大小写敏感

默认情况下,mysql在创建数据库对象时,是区分大小写的。故与microsoft之间进行移植时,要特别注意是否存在问题。在mysql中大小写与参数lower_case_table_names有很大关系。以下为官方解释:If set to 0, table names are stored as …

python json是什么_python json详解

在写某狗屁不通文章生成器的时候,发现有个json类型的文件看不懂。 于是先来搞懂什么是json json是一种储存数据的文件类型。 说人话,就是一种文件,能够数据 类似于DOC,excel 之类的。 json能储存半结构化数据。 简单来说&#xff…

mobx中跟新了数据视图没变化_【第1781期】MobX 简明教程

前言SEEConf,2020年1月4号杭州见,C位抢票见文章末尾。今日早读文章由腾讯whinc投稿分享。正文从这开始~~导读:MobX 是一个优秀的响应式状态管理库,在流行的状态管理库 Redux 之外为我们提供了其他选择。如果…

excel导航窗格_Excel小技巧16:在每天的某个时刻自动打开特定工作簿

学习Excel技术,关注微信公众号:excelperfect我想要在每天下班前,将自已一天的工作进行整理并简短记录在一个Excel工作簿中。然而,有时候忙,可能会忘记;有时候到下班时间了,急于下班,…

pdf secured_使您的Spring Security @Secured注释更干燥

pdf secured最近,Grails用户邮件列表中的一个用户想知道在定义Secured注释时如何减少重复 。 在Java批注中指定属性的规则非常严格,因此我看不到直接执行他所要求的方法的方法。 使用Groovy并没有真正的帮助,因为Groovy类中的注释大部分与Ja…

51单片机按键控制数码管0~9_51单片机外部中断

前面为大家介绍的点亮LED灯、数码管、按键只用到了51单片机的IO资源,我们要是仅仅用单片机点灯、操作数码管,那可真是大才小用了。这些都只是51单片机资源的冰山一角,51单片机还有好多的功能,我后面将为大家一一介绍。今天为大家介…

IIS7开启gZip动态压缩

1.安装动态压缩模块: 安装过程可能的报错:This application has requested the Runtime to terminate it in an unusual way. 解决办法>> 报错:错误: 尝试安装 动态内容压缩 失败,错误代码为 0x8007000E。 存储空间不足&am…

mysql查询不重复记录数_mysql查询不重复的行内容,不重复的记录数.count,distinct

有这么一个表 记录了id, p_id, p_name , p_content , p_time 1 343 aaa aaaaaa 2012-09-01 2 344 bbb bbbbbb 2012-09-02 3 321 ccc cccccccc 2012-09-03 4 343 aaa aaaaaa 2012-09-04 想查询不重复的行的内容,并且输出 p_sum ( 产品p_id出现重复的次数) sele有这么一个表记录了…

使用Java中的FileChannel和ByteBuffer在文件中读取/写入文件

过去,我讨论过RandomAccessFile以及如何将其用于在Java中进行更快的IO,在本Java NIO教程中,我们将了解如何通过使用FileChannel和ByteBuffer来使用读/写数据。 Channel提供了一种从文件读取数据的替代方法,它提供了比InputStream…

字符,字符串,int之间互相转换

字符转换成字符串:String str String.valueOf(ch); 字符转换成int: int a ch; 字符串转换成字符:char ch str.charAt(0); 字符串转换成Int:只包含数字的字符串可以通过Integer.parseInt(str)转换为int,但是包含字母…

mysql 导入百万级数据 几种 java_Java 修行第034天--执行计划及其使用--Oracle数据导入导出--第三章MySQL使用...

执行计划中牢记几句话:-- 尽量避免是*代替所有列,编写查询语句时使用具体列名代替*,可以防止全表扫描-- 尽可能少的使用like关键字进行模糊查询-- 建立适当的索引可以提高查询效率十三. 执行计划--通过PL/SQL Developer查看查询的1 执行计划是一条查询语句在Oracle中的执行过程…

10g添加用户 oracle_oracle 10g中如何创建用户

登录身份 说明sys/change_on_install SYSDBA或SYSOPER 不能以NORMAL登录,可作为默认的系统管理员system/manager SYSDBA或NORMAL 不能以SYSOPER登录,可作为默认的系统管理员sysman/oem_temp sysman 为oms的用户名scott/tiger NORMAL 普通用户aqadm /aqad…

摄像头分辨率怎么调整_亿联CAM50 - 智能话机专属高清摄像头

亿联CAM50是通过USB连接的高清视频摄像机,适用于亿联桌面高端智能话机(SIP-T58V和SIP-T58A),致力于提供一流的个人视频通信体验,优化视频协作。CAM50高清摄像机即插即用,无需额外安装驱动软件,也…

C orm mysql_Simple MySQL-C ORM

当你需要在纯C语言的应用程序中访问 MySQL 表中的数据时,是非常繁琐的事情,而该框架可以帮你大量的简化编码的工作,该框架采用 Python 开发,适用于 C 语言程序。示例代码:#include #include #include #include int mai…

jdbc:log4jdbc_使用Log4jdbc记录JDBC操作

jdbc:log4jdbc当我们开发任何应用程序,完成它或结束其任何模块时,我们都会开始优化过程。 大多数应用程序都包含数据库访问权限,如果您使用的是ORM ,则可能会使用hibernate 。 优化Hibernate持久层,要求准备阅读&#…