page contents

SQL与Python的区别与联系:为什么SQL程序员也要会Python

Python,作为最流行的脚本语言之一,它也是数据分析和数据可视化的首选工具之一。除了范围庞大的Python开发人员社区之外,还有一个重要的团队使用Python来分析数据、提出可行的见解,并以此做出决策。

attachments-2021-04-oVOxb1pm60827e6e02d9b.png


今天带大家来讲讲SQL与Python的区别与联系,为什么SQL程序员也要会Python呢?

Python,作为最流行的脚本语言之一,它也是数据分析和数据可视化的首选工具之一。除了范围庞大的Python开发人员社区之外,还有一个重要的团队使用Python来分析数据、提出可行的见解,并以此做出决策。Python拥有数量众多的帮助库和平台,可以作为一个快速、可迭代的数据探索工具。Python的库集合包括从可视化到统计分析的所有内容,它可以帮助用户方便地进入数据中并开始识别模式。除了能够在数据和统计分析中快速迭代外,Python还有很多用于管理数据管道和工作流的开源工具。越来越多的分析师正在寻找使用Python处理数字和理解数据的新方法。


Python有什么用?


Python和SQL一样:它能够解答任何问题。Python的社区很棒,它的采用率一直在上升。有许多易于使用的Python库,可以方便快捷地进行数据探索。这使得迭代数据分析成为可能。有了Python,你才可以真正地探究你的好奇心把你带到的神秘的兔子洞的下方(意为可以追根究底,见爱丽思漫游奇境)。最后,Python的实用性和灵活性允许它用于数据科学堆栈内的各种任务。例如,Luigi 和Airflow都允许在Python中管理数据管道和工作流。通过在Python中完成探索性分析,这些工作有时可以带入到生产环境中继续进行。


与Python相比,SQL最流行的用例是什么?


SQL是用来从数据库中查询和提取数据的。这是将数据转换为可用格式的必要的第一步。例如,SQL允许你轻松地连接多个数据集,以创建一个可以进一步研究的表。SQL并不是专门为以某种方式操作或转换数据而设计的。数据科学中常见的高级数据操作(如统计分析、回归、趋势线和处理时间序列数据)在SQL中并不容易实现。尽管存在这些限制,但是因为SQL是提取数据所必需的,因此它仍然经常被用于复杂的操作。下面的查询是用来计算数据中不同序列的分位数:

WITH details AS (
SELECT series,
       value,
       ROW_NUMBER() OVER (PARTITION BY series ORDER BY valueAS row_number,
       SUM(1OVER (PARTITION BY series) AS total
  FROM dataset
),

quartiles AS (
SELECT series,
       value,
       AVG(CASE WHEN row_number >= (FLOOR(total/2.0)/2.0)
                 AND row_number <= (FLOOR(total/2.0)/2.0) + 1
                THEN value/1.0 ELSE NULL END
          ) OVER (PARTITION BY series) AS q1,
       AVG(CASE WHEN row_number >= (total/2.0)
                 AND row_number <= (total/2.0) + 1
                THEN value/1.0 ELSE NULL END
          ) OVER (PARTITION BY series) AS median,
       AVG(CASE WHEN row_number >= (CEIL(total/2.0) + (FLOOR(total/2.0)/2.0))
                 AND row_number <= (CEIL(total/2.0) + (FLOOR(total/2.0)/2.0) + 1)
                THEN value/1.0 ELSE NULL END
          ) OVER (PARTITION BY series) AS q3
  FROM details
)

SELECT series,
       MIN(CASE WHEN value >= q1 - ((q3-q1) * 1.5THEN value ELSE NULL ENDAS minimum,
       AVG(q1) AS q1,
       AVG(medianAS median,
       AVG(q3) AS q3,
       MAX(CASE WHEN value <= q3 + ((q3-q1) * 1.5THEN value ELSE NULL ENDAS maximum
  FROM quartiles
 GROUP BY 1


什么时候使用Python?


Python有大量的库(例如Pandas、StatsModel和SciPy),它们是为统计和数学分析而设计的。这些库在抽象细节方面也做得很好,这样就不需要手工计算所有底层的数学。此外,你可以立即获得结果,因此可以迭代使用Python来研究数据。不需要说“我想做一个回归分析”,和坐下来花半个小时搞清楚什么地方开始SQL查询,Python库可以运行分析,查看结果。在Python中,灵感和行动之间没有太大的滞后。例如,如果我真的知道需要显示数据集的分位数,我就会编写上面的查询。因为整个事情可以通过下面的一行Python代码来完成,所以我会在分析过程中更早地完成这项工作,并且可能会发现一些我并不想要的结果。

dataset.describe()

考虑Python和SQL之间区别的另一种方法是,Python允许你从一个大表开始,从这个大表开始,可以在不同的分支上进行不同的分析。一条灵感之路可以把你带到另一条路,分析的速度和灵活性使得许多探索路径变得容易。

SQL和Python各有其优缺点,将两种语言结合在一起,可以让分析人员在这两个世界中都得到最好的结果。


对于SQL分析师来说,学习Python需要什么?


与许多技能一样,学习如何使用Python进行分析的最佳方法是潜心研究一个感兴趣的、一直关注的、并且有点熟悉的问题。当你在做你感兴趣的事情时,你往往会做得更加深入。这种好奇心可以推动你走得更远,而它是很多真正学习的源泉。你还应该处理一些你熟悉的数据,这样你就知道你做错了什么。你会有更好的直觉知道发生了什么和期待什么。然而,当你处理的数据是你一无所知的东西时,比如说处理花瓣大小的数据(这是在许多Python示例中出现的非常流行的数据集)。如果你的分析结论是“所有这些花的花瓣大小都是两厘米长”,但是你不知道这是否合理,你可能只是假设它是对的,然后继续前进。学习Python无疑可以增强数据分析师的技能。
分析师需要通过数据来传达业务价值。他们工作的一部分是设法从数据中找到对业务的深刻见解,更有效的工作还包括围绕着那些能够迫使你的队友采取行动的见解,包括正确的背景和表述。而且,由于在工作场所使用数据和分析来做出决策变得越来越重要,因此,分析师这种提供全面分析的角色比以往任何时候都更加重要。

相关文章:

SQL建立数据库:创建和使用数据库

SQL语句的21个好习惯,建议收藏

SQL自动检查神器详细介绍

更多技术资讯,请继续关注六星教育社区-程序员编程技术分享交流学习高端论坛

如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。

attachments-2022-06-SAa1MwsS62abed90577a5.jpeg

  • 发表于 2021-04-23 16:03
  • 阅读 ( 2142 )
  • 分类:数据库

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1320 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章