您的位置:首页 > 编程语言 > Python开发

为什么 SQL 程序员也要懂 Python?

2019-11-13 14:37 811 查看

越来越多的分析师正在寻找使用Python处理数字和理解数据的新方法。

作者 | Lipei Wang
译者 | 苏本如,责编 | 郭芮
出品 | CSDN(ID:CSDNnews)

以下为译文:

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无疑可以增强数据分析师的技能。
分析师需要通过数据来传达业务价值。他们工作的一部分是设法从数据中找到对业务的深刻见解,更有效的工作还包括围绕着那些能够迫使你的队友采取行动的见解,包括正确的背景和表述。而且,由于在工作场所使用数据和分析来做出决策变得越来越重要,因此,分析师这种提供全面分析的角色比以往任何时候都更加重要。
原文:https://segment.com/blog/sql-vs-Python/
本文为 CSDN 翻译,转载请注明来源出处。
【END】

热 文 推 荐 

天猫回应“双11数据造假”:已启动司法流程;小米折叠手机专利曝光;ASP.NET感染勒索软件|极客头条

☞诺基亚的衰败

你的代码,“拯救”过多少人?

阿里双十一 11 年:购物狂欢背后的技术演进

华为发放 20 亿奖金!网友:流下羡慕的泪水……等等!

实战:基于技术分析的Python算法交易

数据中台送到家 企业数字化转型“输血”变“造血”

重大利好!人民日报海外版整版报道:区块链“链”向未来,既要积极又要稳妥

点击阅读原文参与开发者大调查,好礼送不停!

你点的每个“在看”,我都认真当成了喜欢
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: