TL;DR:虽然电子表格非常适合许多数据任务,但当您需要处理大型数据集、创建高级可视化、自动化工作流程或使用机器学习模型时,Python 就变得至关重要。关键是知道何时利用每种工具的优势来满足您的特定数据分析需求。
虽然 Python 通常被认为对于数据工作至关重要,但电子表格仍然是满足许多分析师日常需求的最实用工具 - 这完全没问题。但知道何时超越它们对于提高您的数据能力至关重要。
如果您查看任何数据分析师或数据科学家课程,您都会发现相同的核心工具:电子表格、SQL、Python 和各种商业智能 (BI) 解决方案。然而,当我与数据从业者和领导者交谈时,出现了一个常见问题:“当电子表格可以满足我的大部分需求时,为什么要切换到 Python?”
作为一家基于 SQL、Python 和 AI 的公司的联合创始人,我的立场可能会让您感到惊讶:如果电子表格可以完成这项工作,那就使用它。这些工具自 20 世纪 70 年代以来一直经久不衰,有充分的理由 – 它们直观、灵活,并且非常适合向他人解释您的工作。
但它们也有其局限性。
当您开始进行更多临时分析或探索性数据分析或处理企业中的更多数据时,您很快就会遇到一些问题:
电子表格的核心功能非常强大,因为它们使您可以完全控制数据工作区。就像拥有自己的定制仪表板一样,它们可以让您按照您想要的方式立即操作、可视化和分析数据。
人们倾向于电子表格有两个主要原因:
让我们从数据从业者(无论技能水平如何)喜欢电子表格的最明显原因开始:它们非常灵活且可定制。
在电子表格中,您在自己的环境中工作,并且可以完全控制它。您想突出显示特定行并创建快速图表吗?简单的。您想添加一些条件格式来突出显示特定模式吗?没问题。您甚至想添加行或列来添加一些输入?往前走。
作为用户,您拥有完全的控制权,即使在 Google 表格等共享工作区环境中也是如此。这确实很强大,特别是与传统的 BI 解决方案相比,传统的 BI 解决方案无法以同样的方式直接在线编辑数据,也无法调出特定的数据片段,而不必将数据分割成较小的子集,从而可以快速获取不可收拾。事实上,一些新的 BI 解决方案(例如 Sigma)正在利用这一想法,以类似电子表格的界面作为其主要卖点。
总而言之,电子表格的用户体验非常直观。我们从小就学习数学,电子表格提供了一种结构良好的方式来查看数据并理解所有数字如何相加。
电子表格中的反应性意味着当您更改一个数字时,与其连接的所有内容都会自动更新。这种即时反馈使他们非常适合了解不同数据如何相互影响。
例如,假设您的单元格连接如下:
C1 = A1 B2
反应性是指当你更新A1或B2时,C1会自动更新。实际上有一个 DAG 可以跟踪所有单元之间的依赖关系或谱系。这是一个非常强大的概念,因为与代码不同,您不必“运行”电子表格。您可以简单地创建一个世界模型并调整输入,然后查看结果如何对这种变化做出反应。
这种反应性在很大程度上也有助于轻松理解电子表格。我可以查看一个易于理解的公式,单击它以突出显示相关单元格,然后调整相关单元格以了解我正在查看的数字如何反应以及与其相关。
如上图所示,如果您想知道哪些数字对税前净收入贡献最大,您只需单击单元格,查看相关单元格,即可立即了解税前净收入有哪些变量。
出于这些原因,如果您能够在电子表格中完成工作,这可能是个好主意。
虽然电子表格在许多任务上表现出色,但 Python 为数据工作开辟了一个充满可能性的全新世界。从处理海量数据集到创建复杂的可视化和自动执行重复任务,Python 成为数据工作流程的强大工具有五个原因。
使用 Python 的第一个也是最明显的原因是在处理大型数据集时说明的。 Excel 可以支持大约 1M 行 x 17k 列,Google Sheets 可以支持大约 10M 个单元格。这听起来可能很多,而且在许多情况下这已经足够了,但很可能,您很快就会遇到这个限制。相比之下,Python 在功能强大的机器上可以支持多个数量级的数据。如果您利用 Polars 和 DuckDB 等新技术,这一点尤其正确。
随着时间的推移,我们可能会看到电子表格的限制不断增加,但 Python(尤其是与 SQL 结合使用)始终能够处理更多。
电子表格可以提供一些非常强大的视觉效果,但这只是 Python 功能的一小部分。我坚信条形图、折线图和地图涵盖了绝大多数情况,但用数据讲述故事通常需要打破平凡并创建一个引人入胜的画布。
例如,我喜欢一个好的桑基图来讲述数据如何从 A 点流到 B 点的故事。或者您可能想创建一个雷达图来比较不同类别的属性。
使用诸如plotly、seaborn 或bokeh 之类的库在Python 中构建它们非常容易。
举个例子,让我们回到之前帖子中的 Superdope 示例,并假设您想在旭日图上比较产品性能,如下所示:
使用诸如plotly之类的库通过代码生成此图表相当简单:
import plotly.express as px # Create the sunburst plot fig = px.sunburst( df_sunburst, path=['Region', 'Category', 'Product'], values='Sales', color='Region', title='Sales Distribution by Region, Category, and Product', width=800, height=450 ) # Update layout fig.update_layout( margin=dict(t=50, l=0, r=0, b=0) ) # Show the plot fig.show() And this code can be generated by AI in about 3 seconds. Building something similar in a spreadsheet would require a lot more time and effort.
处理数据时,您经常会发现自己在执行重复的数据转换任务。例如,假设您所在的行业的客户定期向您发送 CSV 或 Excel 文件,您必须清理数据并格式化数据,然后将其转换为报告或为其他步骤做好准备。对于 Python 来说,这是一个完美的任务。如果您正在管理自己的服务器并且足智多谋,您可以编写一个脚本并安排它使用 Cron 作业运行,或者如果您想使用开箱即用并处理编排和更复杂作业的托管解决方案,您可以使用 Dagster 或 Airflow 等解决方案。
作为一般规则,现在通常最好避免本地开发的 Cron 作业,除非您确切知道自己在做什么。确保这些保持正常运行、进行适当的日志记录和监控并进行适当的编排可以很快变成大量工作。
注意:如果您只是在寻找一种轻量级且快速的方法来构建数据管道,Fabi.ai 可能是您的不错选择。我们可以帮助您在几分钟内轻松设置往返于任何来源(包括 CSV 文件和 Excel 文件)的数据整理和清理管道。
您可以在电子表格中执行很多操作,但构建和使用更高级的统计和机器学习模型通常不是其中之一。如果您只是进行单变量数据分析和一些简单的计算(例如分布、平均值等),电子表格应该能够完成工作。但如果您想尝试更高级的多变量分析,甚至是聚类、预测和流失预测,Python 配备了一套丰富的开箱即用工具。
以下是您可能想要与相应的 Python 包一起进行的分析类型的一些示例:
最后,在很多情况下,确保您的工作可追溯和可复制是一种很好的做法。
在实践中,这意味着当其他人(或者以后可能是你自己)查看您的分析时,这个人应该能够理解:
使用 Github 或 Gitlab 等版本控制系统并在进行分析时提交对底层代码的更改可以帮助您避免这种情况。
如果您想要进行复杂的临时或探索性数据分析、使用先进的机器学习技术或构建复杂的可视化,Python 是完成这项工作的最佳和最强大的工具之一。
是的,电子表格非常受欢迎是有充分理由的。如果您处理的数据集相对较小,则在不需要自动化的一次性分析中,Excel 或 Google Sheets 是很好的工具。
但是,Python 在处理大型数据集时表现得非常好,这对于 Excel 或 Google Sheets 来说可能是一个问题。 Python 也常用于自动化数据管道,特别是当它需要某种形式的数据转换和清理时。
像大多数事情一样,需要在特定的时间和地点使用某些工具来充分发挥其优势。我们构建 Fabi.ai 来充当所有工具之间的桥梁,这样您就可以两全其美。
我们让连接到任何数据源(包括电子表格和文件)变得异常容易,并构建轻量级数据管道。我们内置的 SQL 和 Python 界面经过 AI 增强,使得利用先进的机器学习和统计模型变得异常容易,无论以前的经验如何。如果您有兴趣了解我们,今天您可以在不到 2 分钟的时间内免费开始使用。
以上是为什么使用 Python 进行数据分析(当您有 Excel 或 Google Sheets 时)的详细内容。更多信息请关注PHP中文网其他相关文章!