origin多组柱状图_柱状图上下两组数据

origin多组柱状图_柱状图上下两组数据今日份知识你摄入了么?在我的数据分析生涯中,我几乎完全是在SQL中锻炼我的技能。虽然SQL可以做一些非常酷的事情,但它有它的局限性-这些限制在很大程度上让我决定了要不要去感受数据科学别的巨大魅力。在我之前的数据岗位中,我需要分析来自外部源的数据文件和工具,但这些工具限制了它可以处理的数据量或花费过多的时间,使任务变得几乎不可能彻底完成。在我所有职位中有一个数据pipeline有点像这样:…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

99aa8b53e796b88cd039e77db5022b69.png

c33785bb74a6ea761fd0a2861fda5b92.gif

今日份知识你摄入了么?

在我的数据分析生涯中,我几乎完全是在SQL中锻炼我的技能。虽然SQL可以做一些非常酷的事情,但它有它的局限性 – 这些限制在很大程度上让我决定了要不要去感受数据科学别的巨大魅力。在我之前的数据岗位中,我需要分析来自外部源的数据文件和工具,但这些工具限制了它可以处理的数据量或花费过多的时间,使任务变得几乎不可能彻底完成。

在我所有职位中有一个数据pipeline有点像这样:

6627ee25bee36fc5ad5512de2c44d41a.png

当我们收到了来自外部来源的数据,需要进行质量分析而且我们需要理解ETL的要求。当我们使用excel来做这件事的时候,任何尝试使用excel进行大型文件分析的人都知道这是一场噩梦。所以我们编写excel宏,但由于每个数据文件都是如此不同,所以它们并不有用。其他数据分析的工具通常不是天上掉下来的,得花钱的,但是帮你付钱的爸爸如果不能切身感受到你的pain,那他们就会拒绝做你的爸爸。

但是世界在我搜索了 Python Pandas Library 变得清凉了。

卧槽,这么刺激免费有用高级的东西!我居然现在才发现!

Pandas

d8f2a94d98ec1bc4ff8e9f52955b4a33.png

Pandas与SQL不同,Pandas有内置方程。当数据已经是文件格式(.csv,.txt,.tsv等)时,Pandas允许我们在不影响数据库资源的情况下处理数据集。

我将解释并展示一些我真正喜欢的功能的例子:

pandas.read_csv()

首先,我们需要将数据存为data frame。一旦我们将其设置为变量名称(下面的“df”),我们就可以使用其他函数来分析和操作数据。在将数据加载到data frame时,我使用了’index_col‘参数,这个参数将第一列(index = 0)设置为数据帧的row label。有时我们需要调整多个参数来让我们的data变成正确的format。如果这个dataframe被设为为一个variable, 那么这个方程不会返回output, 但你可以用下面的方程来观察数据。

# Command to import the pandas library to your notebook

import pandas as pd

# Read data from Titanic dataset.

df = pd.read_csv(‘…titanic.csv’, index_col=0)

# Location of file, can be url or local folder structure

pandas.head()

head方程非常有用,只需在我们之前的的dataframe的variable名称后加.head(), 默认设置是显示前5行,但咱们也可以通过调整数值来改变 例如.head(10)

df.head()

23666a64abbdeb46d3647088a19b498c.png

前5行的数据

我们可以看到数据里有一些String,Int,Float,有些列有NaN值。

http://pandas.info()

info方程将给出数据帧列的细分以及每个列的非空条目数, 而且还会告诉我们每列的数据类型以及数据框中的总条目数。

http://df.info()

5ff126d5cca351944362a0d0a27a81d7.png

pandas.describe()

describe函数对于查看数据的分布非常有用,特别是像int和float这样的int类型。如下所示,它将返回一个数据框其中包含每列的均值,最小值,最大值,标准差等。

df.describe()

1d95fb26af7ee7352e3b7a6ea05412d9.png

如果我们要查看不仅仅numeric而是所有类型的variable,就必须使用include参数。但值得注意的是“unique”,“top”和“freq”会被加入进dataframe中。这些仅针对非Numeric数据类型和NaN显示。对于这些新的Row,其他对应数字的细分都是NaN。

df.describe(include= ‘all’)

b85786ccf5c5a76cf74239985bbd2f26.png

pandas.isna()

单独的is.na 方程自己不是非常的有用,它将返回整个数据帧为False,如果有NaN或NULL值,返回True。如果你在is.na()中包含.sum(),那么你将获得类似下面的输出,显示每列的NaN或NULL的个数。

df.isna().sum()

38d2cb9cb73b443675ec86bc559a34f9.png

pandas.plot()

Pandas绘图功能对于快速可视化数据非常有用,这个此函数使用matplotlib进行可视化.

df.plot(x =’age’,y =’fare’,kind =’scatter’)

4c51e30270d35db5b983c49679d5c576.png

这些只是我用于初始数据分析的一些有用的Pandas函数。我们可以在此处找到更多关于pandas的用法。

什么时候使用SQL? 什么时候使用 Pandas?

使用哪种工具取决于数据存储的位置,想要使用的数据和自己的优势。如果你的数据属于文件格式,则无需使用SQL进行任何操作。如果你的数据来自数据库,那么咱们应该通过以下问题来了解应该使用SQL。

7fe49874852befb13fdd223f2fecd58b.png

如果你只有写一个 query 的权限,真正运行是别人来做的话,你大概就不能真正透彻地了解你的这组数据。这个时候,你要做的就是把你觉得你可能需要的所有数据都 pull 下来,然后导出成一个 csv,然后用 Pandas 去处理。

或者

如果你知道你要 run 的这个 query 会占用这个数据库很大的资源,然后数据库的 admin 大概率会不爽的话,那你就在数据库之外用 Pandas 处理。尽量避免在你的 query 里使用 SELECT*,特别是你无法琢磨你的 table 里会生存多少数据的时候。

14f7aff3c8451c3a9783d128244c0240.png

如果你已经知道你将如何处置你的数据了,比如你打算加哪些具体的 filter,或者把数据 join 进某个具体的 table,或者把两组数据通过某种计算或者集合 combine 一下,等等;那这个时候选择使用 SQL 会简单一些。你可以通过 SQL 把你的数据都 pull 下来然后导成一个 CSV 再来进行接下来的数据分析或者建模等等。

f47dc53e6ac0fb2b1375c7ba08cb3a10.png

这其实是最重要的一个问题,你知道自己最强的地方在哪么?如果你知道自己和谁相处更舒适一些,那就不要犹豫!贴紧它!榨干它!做整条街最靓的仔!

总结一下:

这两个工具都非常有用,我建议大家同时学习。该组合将使我们能够更有效地进行广泛的数据分析和操作。很快,你将不再需要处理令人崩溃的Excel了。来加入我们!

108a165fee251c609845503c7b0cd283.png
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/188182.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • ajax请求状态码是0_常见错误状态码

    ajax请求状态码是0_常见错误状态码会出现这个HTTP请求状态码400,说明这个请求是无效的,并没有进入后台服务器(控制器)里。通常的原因:前端提交的字段名称或者字段类型和后台的实体类不一样,或者前端提交的参数跟后台需要的参数个数不一致,导致无法封装。比如在SprimgMVC的控制器方法中使用了@RequestParam修饰了一个yanggb参数,但是前端在请求的时候并没有带上yanggb参数或yanggb参数为空值,就会出现这种情况;再比如前端提交到后台的数据应该是JSON字符串类型,而前端没有将对象转化为字符串类型,也会返回HTTP请

    2022年10月28日
  • 基于android点餐系统需求分析,基于Android的点餐系统的设计及实现

    基于android点餐系统需求分析,基于Android的点餐系统的设计及实现内容简介:基于Android的点餐系统的设计及实现,毕业论文,共58页,20083字,附开题报告、答辩文稿、源程序。摘要随着无线网络(如4G、3G、GPRS)及无线网络技术与移动操作系统的不断发展,移动生活逐渐成为社会的主流。现如今,许多餐饮企业仍然采用传统人工式服务,使服务质量、效率变得很差。为了改变这一现状,本设计将介绍一种基于Android的无线点餐系统。这种点餐系统包括服务器端与客户端,…

  • 程序员警句

    程序员警句

  • Android银弧刀之ProgressBar之最炫民族风「建议收藏」

    Android银弧刀之ProgressBar之最炫民族风「建议收藏」传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229银弧刀     陆无双抬起头来,只见四名乞丐,一字排在门外,或高或矮,一齐望着自己。她曾用银弧刀伤了一个乞丐,一见这四人来意不善,心中暗暗吃惊。。。杨过听了她声音,也是大吃一惊,只听另一个女人声音道:“那叫化子背上的,明明是师妹的银弧刀,就可惜没能起

  • 模块管理常规功能自己定义系统的设计与实现(31–第三阶段 权限设计[1])

    模块管理常规功能自己定义系统的设计与实现(31–第三阶段 权限设计[1])

  • linux mqtt客户端

    linux mqtt客户端实现功能:(1)定时30s发送心跳包;(2)接收mqtt数据包,解析函数是user_recv_handle_cb;(3)定时PERIOD_TIME发布自身订阅的主题信息,即循环PERIOD_TIME发啥收啥。说明:(1)主要根据庆科的MiCO_A_v3.2.0/demos/net/mqtt_client的stm32freeRTOS移植到li…

    2022年10月24日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号