excel能走多远?

数据挖掘 Python r 数据分析 擅长
2021-10-07 12:46:07

在我的业务中,我们通过 Excel 处理所有分析。这主要包括调度、生产计划和会计操作。我们目前正在考虑添加一些预测建模,Excel 在一定程度上就足够了,但不支持复杂模型。

在我看来,Excel 的主要优点是它的易用性以及您可以轻松找到并培训人们习惯它。另一方面,更复杂的环境(例如 R、python)可以处理更广泛的分析任务,但需要训练有素的人员。

我还阅读了这个关于 Excel 是否足以用于数据科学的问题,虽然它有点超出我的目的,但结论是 R 和 Python 等工具比 Excel 好得多。

我的问题是(在数据分析的背景下):“我们可以用 Excel 走多远,而无需更改为更复杂的工具?” 或者“我们什么时候需要从 Excel 迁移到 - 比如说 - R?”

非常感谢你!

1个回答

TL;博士

如果您有无限的时间并使用 64 位版本的 Excel,那么您可以使用 Excel 与任何其他数据分析工具一样远。

时间

我提到时间是我的第一个因素,因为 Excel 只有内置的基本功能,例如求和、随机数生成、查找等。这些对应于一种标准库,Python 和 R 也有。使用这些基本功能,只要有足够的时间,您就可以构建几乎任何分析工具。不要期望良好的运行时性能。然而,在 Python 和 R 中,人们已经创建了许多包,它们性能良好,并且已经过很多人的测试,因此是值得信赖的。

记忆

我关于 64 位 Excel 的第二点是因为它允许Excel 的单个实例使用更多的内存。它允许填充更多的单元格。使用 32 位 excel 会将您的项目限制在 2Gb 左右。这是相当数量的数据,但这是一个硬性限制。

然后进入 64 位 Excel,这基本上意味着不再有内存限制 - 只有那些来自您的硬件的限制,这意味着 Python 和 R 也将停止运行。

为了提供一些数字,我们可以简单地计算每个版本中能够存储的位数。在 Python 的交互式提示中:

In [1]: (2**32) / 10**9          # 10^9 means the result is 4.3 Gb
Out[1]: 4.294967296

In [9]: (2**64) / 10**18         # 10^15 means the result is 18.4 Eb
Out[9]: 18.446744073709553

Eb表示exa-bytes这意味着 1840 万千兆字节。

我注意到计算显示 32 位为 4Gb,而我在上面说的是 2 Gb。我读到32 位版本有一种硬性限制。我不知道也不关心为什么……我使用 Python 和 R ;-)

无论如何,我希望这足以让您相信记忆不是问题,如果您是一个愿意投入所有时间从头开始构建工具的勇敢者!

概括

如果您有复杂的业务逻辑,而实际分析在数学上很简单,请坚持使用 Excel。商界人士会因此而爱上你。

如果您想做的不仅仅是线性回归,请使用 Python 或 R。

注意事项

据我所知,您无法使用 Excel 运行远程或分布式任务,而使用 Python 和(在我看来稍微不那么简单)R 相对容易。所以在这一点上,我会放弃 Excel。您可能必须使用 .Net 框架在 C# 或 C++ 中实现自己的工具。