Pandas 该灭绝了?Polars 与 DuckDB 的崛起

Pandas Should Go Extinct

Pandas 该灭绝了?Polars 与 DuckDB 的崛起

文章直言 Pandas 应当退出历史舞台,并非因为它不够好用,而是其效率瓶颈迫使开发者过早引入 Spark 或 Snowflake 等复杂的分布式系统。作者通过 Amazon Redshift 的实测数据指出,94.68% 的表数据量不足 100GB,绝大多数场景属于“中等数据”问题。针对这一区间,基于 Rust 的 Polars 和类 SQLite 的 DuckDB 凭借惰性求值与多线程优化,在单台机器上实现了远超 Pandas 的性能。实测显示,在处理 10 亿行数据时,DuckDB 和 Polars 的速度是 Pandas 的数十倍,且内存占用极低。与其盲目追求大数据架构,不如用更现代的工具解决当下的痛点。

你很可能没有大数据,甚至永远都不会有;你面临的是中等数据问题,需要的是中等数据解决方案。
  1. minimaxir

    好久没在 Hacker News 上看到真正的数据科学帖子了:一方面是因为 AI 已经涵盖了大量数据科学任务(例如向量嵌入),另一方面是因为数据科学领域本身也没太多新进展。Polars 已经存在一段时间了,正如文中提到的,它确实比 pandas 好很多,但除此之外,数据科学生态显得有些停滞不前。

    我本想多写一些关于如何使用数据科学工具的教学文章,但 AI 带来的一个后果是,我过去用来分析的所有旧数据源,比如社交媒体和 Reddit,现在都被彻底封锁了(不过我挺惊讶 NYC Taxi 的数据居然还在更新)。因此,在解决数据问题的同时,我正在致力于打造更好的数据科学工具……尽管由于上述数据问题,最终效果如何还不得而知。

  2. rmunn

    标题挺可爱;我本来以为要读到一位持反对意见的生态学家在说:“一个食性如此专一、繁殖行为如此挑剔的物种,从进化论的角度来看,根本不值得存活”。(说真的,要让熊猫在圈养环境下繁殖真的难如登天)。虽然我的第一反应会是“也许吧,但我们还是应该保护它们,毕竟我们有能力”,但我还是准备看看作者有没有什么严肃的论点。

    结果这只是一个可爱的“调包计”标题,文章开头就明说了其实讲的是 Python 的 `pandas` 库。我想我整个职业生涯里可能只遇到过一次(我不在数据科学领域),所以我对文章本身没什么有意义的看法。我只想称赞作者用标题把我给骗了。这种“标题党”是我能尊重的,甚至有时还希望多一点。先让人会心一笑,然后是一篇正经文章。

  3. sjtrny

    > 人们通常从 Excel 开始,然后在 GB 级别的数据量时转向 Pandas。Pandas 能很好地服务于几十 GB 的数据量,之后他们就会开始遇到内存问题、计算缓慢,或者对 Pandas 那巴洛克式的 API 感到沮丧。

    这假设项目会超过几十 GB 的规模。我猜 99.9% 导入 pandas 的项目都远低于这个阈值。

  4. mulmboy

    人们通常会惊讶地发现,对于相当普通的操作,尤其是处理较小数据集时,polars 反而更慢。例如,取一个 5000 x 3 的 float64 数据框并按某一列排序,你会发现 polars 耗时大约是其他方案的 2.5 倍。如果你将 POLARS_MAX_THREADS 设置为 1,速度就会变快。不过这一切都取决于机器。Polars 通常在处理大型数据集或能充分利用查询规划的场景下才会大放异彩。

    别跳过性能分析。

  5. latent-person

    在我看来,停止使用 pandas 的一个更好的理由是它非常反直觉的 API。此外,查询中的一点小改动可能迫使你重构整个查询(修改所有行),而在 Polars(以及 R 中的 tidyverse)中,这只是一个简单的一行改动。

  6. crazysim

    是我疯了,还是 OP 不小心把帖子的内容给换错了?

    https://eddie.codes/posts/pandas-should-go-extinct/ <=> https://eddie.codes/posts/source-code-comments/

  7. __mharrison__

    我正在为《Effective Pandas》第三版收尾编辑工作。(我也写过一本关于 Polars 的书,并且本周刚刚结束了一周的 pandas 培训课程。)

    Pandas 并不完美,它有一堆毛病。但它对大多数人来说已经够用了。(而且很多人还在用 Excel、Tableau 或 Power BI……我本周培训的就是这类人)。

    如果你处理的是中等规模的数据,从基于 pyarrow 的 pandas 迁移到 DuckDB 或 Polars 是微不足道的。

  8. evolve-maz

    只有最近这几年我才开始正确使用 SQL。在此之前,我的管道都运行在 Python 里。现在我把尽可能多的工作卸载到数据库,让 Python 只负责简单的胶水逻辑。与 pandas 或 polars 中的其他方法相比,我对这种方式非常满意。

    如果我还是需要在 Python 中做类似数据库的操作,我觉得 duckdb 更好。

同日更多故事

2026-09-12