当前位置:首页>python>Python 必知必会:7 个 Python 库——可以处理 Excel 无法处理的一切!

Python 必知必会:7 个 Python 库——可以处理 Excel 无法处理的一切!

  • 2026-10-21 13:29:06
Python 必知必会:7 个 Python 库——可以处理 Excel 无法处理的一切!

电子表格曾经风靡一时,现如今也还有很多用户。

你可能已经熟练掌握了 pandas + Excel,甚至记住了 Ctrl-C、Ctrl-V 和“设置单元格格式”这些快捷键。但是,当数据量增长、逻辑变得复杂或性能下降时,电子表格就会崩溃。

这 7 个库让 Python 的功能突飞猛进——它们可以处理分析、维度建模、自定义公式、大型数据集、实时用户界面等等——这些都是 Excel 无法胜任的。当“Excel 已经无法满足需求”时,我就会使用它们。

1. vaex — 处理数十亿行数据帧而不会耗尽内存

为什么用它:对于 pandas 因 MemoryError 而崩溃的数据集, vaex 可以使用内存映射快速有效地进行过滤、聚合和可视化。

import vaexdf = vaex.open('huge_dataset.hdf5')df = df[df.x > 0]agg = df.groupby('category', agg={'mean_y': vaex.agg.mean('y')})print(agg)

用一个包含 12 亿行日志的数据集运行了测试。没有出现内存不足的情况,也没有崩溃,成功运行并得到结果。

2. formulaic——Python 环境中的 Excel 式公式

为什么用它:你希望在 Python 中使用 DataFrame 上下文和类型安全,实现 Excel 公式(例如 IF、SUMPRODUCT)的表达能力。

import pandas as pddf = pd.DataFrame({    "price": [20, 35, 15, 40],    "quantity": [2, 1, 3, 1],    "discount": [0.9, 1.0, 0.8, 1.0],})df["revenue"] = df["price"] * df["quantity"] * df["discount"]from formulaic import Formulaformula = Formula("revenue ~ price * quantity + discount")y, X = formula.get_model_matrix(df)print("y (revenue):")print(y)print("\nX (design matrix):")print(X)

它用于统计建模和自定义 DSL 引擎。现在,Excel 的公式引擎任你操控。

3. PyDAX — 将 Power BI / DAX 逻辑引入 Python

为什么用它:你需要 DAX 的强大功能(筛选上下文、CALCULATE、时间智能),但又不想被 Microsoft 工具所束缚,而需要在 Python 中使用。

from pydax import evaluate, Contextctx = Context(table={'sales': [{'date': '2023-10-01', 'amount': 100},                    {'date': '2023-10-02', 'amount': 150}]})expr = "SUMX(sales, sales[amount])"res = evaluate(expr, ctx)print(res)  # 250

在脚本中使用 DAX 风格的逻辑——更高层次的数据建模,无需 GUI。

4.面板 + 面板数据(通过 panel + hvPlot)——基于数据框的交互式仪表板

为什么用它:Excel 的数据透视表和切片器已经过时了。有了 panel 和 hvplot,你的代码就能变成可筛选的仪表板,并在笔记本或网页中即时刷新。

import panel as pnimport hvplot.pandasimport pandas as pddf = pd.DataFrame({'x': range(50), 'y': [i**2 for i in range(50)]})plot = df.hvplot.line('x', 'y')pn.Row(plot, df.hvplot.table()).servable()

无需编写 HTML 或 JS 代码,即可获得用于探索的用户界面。

5. PyJanitor + conditional_eval — 电子表格规则类的表达式转换

为什么用它:Excel 的“如果单元格 > 某个阈值,则执行此操作”逻辑,在直接进行链式转换时会变成可读代码。

from janitor import clean_names, conditional_evalimport pandas as pddf = pd.DataFrame({'Revenue': [100, 200, 0],                   'Cost': [30, 80, 10]})df = (    df.clean_names()      .conditional_eval(          "profit_margin = (revenue - cost) "          "/ revenue if revenue > 0 else 0"      ))print(df)

没有嵌套 lambda 表达式,没有逐行循环——只有管道内的电子表格逻辑。

6. Pint + xarray — 具有物理语义的单位感知多维数据

为什么用它:电子表格无法处理单位换行或多索引空间/时间网格。xarray + pint 可以创建知道单位和坐标轴的数组。

import xarray as xrimport pintfrom pint import UnitRegistryureg = UnitRegistry()da = xr.DataArray([1, 2, 3],                  dims=['time'],                  attrs={'units': 'meter'})da = da * 2 * ureg.meterprint(da)

它适用于处理科学数据、天气网格、信号——Excel 根本无法与之媲美。

7. OpenRefine-Python (refineclient) — 使用 Reconcile API 模式清理混乱数据

为什么用它:Excel 的数据清洗是手动完成的。refineclient 连接到 OpenRefine,并允许你使用Python编写转换脚本(如分面、聚类、批量编辑)。

from refineclient import refineclient = refine.RefineClient("http://localhost:3333")project = client.new_project("dirty.csv")project.apply_operations([{"op": "cluster",                           "on": "Name",                           "mode": "levenshtein"}])project.export("cleaned.csv")

脏数据条目通过聚类进行处理;你无需编写任何图形用户界面操作。这是 Excel “数据 → 清理” 功能的自动化版本,堪称完美。

Thanks for your reading!

Enjoying coding, my friends! 🧑‍💻🧑‍💻🧑‍💻💯💯💯


推荐阅读👇👇👇

•
写给 Python 开发者的“内功心法”:23 种经典设计模式系列 (开篇)
•
Python 必知必会:后悔没有早点知道的 4 个 Python 类型提示知识!
•
Python 必知必会:让你像专业人士一样编写代码的 10 个 Python 特性!
•
Python 必知必会:可在几分钟内构建仪表板的 10 个 Python 库!
•
Python 必知必会:我每天都在用的 9 条 Python 单行代码(神来之笔)!
•
6 个速度快到飞起的 Python 库,让我不再使用多线程!

🌟 如果你觉得这篇文章对你有帮助,并且愿意支持我的话,你可以: 🌟

•
👍 点赞,让文章获得系统推荐
•
⤴️ 分享,把内容传递给身边的伙伴
•
❤️ 推荐,让文章影响到更多人
•
👏 欢迎留言交流,一起拓展技术的边界

👇👇👇 Follow me,获取更多高质量干货分享,我们下期再见!

最新文章

随机文章