How to Use Marimo for Interactive Data Analysis
TL;DR · AI 摘要
How to Use Marimo for Interactive Data Analysis - KDnuggets publ: 1-Oct, 2026 - Blog Top Posts About - Topics AI Career...
核心要点
- 主题聚焦:How to Use Marimo for Interactive Data Analysis
- 来源:KDnuggets,建议结合原文判断细节。
- AI 分析暂不可用,本条为保底评分与摘要。
如何使用 Marimo 进行交互式数据分析 - KDnuggets
publ: 2026年10月1日
- 博客热门文章
- 主题 AI 职业建议 计算机视觉 数据工程 数据科学 语言模型 机器学习 MLOps NLP 编程 Python SQL
- 数据集
- 活动
- 资源 快速参考指南 推荐 技术简报
- 广告
订阅电子报
#header end
/ad_wrapper
如何使用 Marimo 进行交互式数据分析
学习如何使用 Python、Pandas 和 Altair 通过 Marimo 进行交互式数据分析,并将响应式笔记本转换为可轻松共享的仪表板。
作者:
Abid Ali Awan,KDnuggets 副编辑,2026年10月1日发布于
数据科学
<div class="addthis_native_toolbox"></div>
传统的 Python 笔记本非常适合数据探索,但随着使用深入会变得难以管理。单元格可能以错误顺序执行,结果可能变得不一致,而要使笔记本具备交互性通常意味着需要添加更多工具或在其他地方重新构建分析。
Marimo 采用更简洁的方案。它是一个开源的响应式 Python 笔记本,当依赖项发生变化时,单元格会自动更新。笔记本以普通 Python 文件形式存储,这使得结果更易于复现、使用 Git 进行版本控制和共享。
在本指南中,我们将使用 Marimo、Pandas 和 Altair 构建一个简单的交互式数据分析仪表板。我们将创建数据集、添加交互式筛选器、将其连接到分析、构建可视化,并最终将同一笔记本作为交互式应用程序运行。
1. 安装 Marimo
首先安装 Marimo 及分析所需库:
pip install marimo pandas altair你也可以使用 uv 或 Conda 安装 Marimo。还有一个包含 DuckDB、Polars 和 Altair 等实用数据工具的 marimo[recommended] 安装选项。
通过以下命令创建你的第一个笔记本:
python -m marimo edit analysis.py这将在浏览器中打开 Marimo 编辑器。这里一个我很喜欢的特性是,与 Jupyter 的 .ipynb 格式不同,Marimo 将笔记本保存为普通的 .py 文件。
2. 创建数据集
现在,让我们创建一个更现实的销售数据集,用于后续教程。我们将为不同产品、地区和季度生成数据,包括销售单位、定价和收入信息。
import altair as alt
import numpy as np
import pandas as pd
import marimo as mo
rng = np.random.default_rng(42)
products = [
("Laptop", "Tech", 800, 1500),
("Phone", "Tech", 500, 1200),
("Tablet", "Tech", 250, 800),
("Monitor", "Tech", 150, 600),
("Keyboard", "Accessories", 30, 150),
("Mouse", "Accessories", 15, 90),
("Headphones", "Accessories", 50, 400),
("Webcam", "Accessories", 40, 250),
]
regions = ["US", "Europe", "Asia"]
region_scale = {"US": 1.0, "Europe": 0.75, "Asia": 0.55}
quarters = ["Q1", "Q2", "Q3", "Q4"]
rows = []
for _quarter in quarters:
for _region in regions:
for _name, _category, _lo, _hi in products:
units_sold = int(
rng.integers(_lo, _hi) * region_scale[_region] * rng.uniform(0.7, 1.3)
)
unit_price = round(rng.uniform(_lo, _hi) / 8, 2)
rows.append(
{
"product": _name,
"category": _category,
"region": _region,
"quarter": _quarter,
"units_sold": units_sold,
"unit_price": unit_price,
"revenue": round(units_sold * unit_price, 2),
}
)
df = pd.DataFrame(rows)
dfMarimo 的一个优势是您无需添加任何额外代码即可查看 DataFrame。只需在单元格末尾放置 df,Marimo 会自动将其显示为交互式表格,您可以在其中搜索、排序和筛选数据。
它同时支持 Pandas 和 Polars,因此您可以继续使用已熟悉的 DataFrame 库。
3. 添加交互控件
接下来,让我们添加一个用于选择区域的下拉菜单和一个用于设置最低销售额的滑块:
region = mo.ui.dropdown(
options=["All"] + sorted(df["region"].unique().tolist()),
value="All",
label="Region",
)
min_sales = mo.ui.slider(
start=0,
stop=int(df["units_sold"].max()),
value=0,
label="Minimum units sold",
)
mo.hstack([region, min_sales])Marimo 内置了多种 UI 组件,包括滑块、下拉菜单、复选框、日期选择器、表格、文件上传和文本输入框。
4. 过滤数据
现在我们可以将这些控件连接到 DataFrame:
filtered_df = df[df["units_sold"] >= min_sales.value]
if region.value != "All":
filtered_df = filtered_df[
filtered_df["region"] == region.value
]
mo.ui.table(filtered_df)尝试更改区域或移动滑块。
您无需手动重新运行单元格。Marimo 会自动检测 filtered_df 依赖于 region 和 min_sales,因此当这些值发生变化时,会自动重新运行受影响的单元格。
这种响应式执行是 Marimo 与传统笔记本相比的主要区别之一。
5. 创建交互式可视化
现在我们可以使用 Altair 可视化过滤后的数据:
chart = (
alt.Chart(filtered_df)
.mark_bar()
.encode(
x="product:N",
y="units_sold:Q",
color="region:N",
tooltip=["product", "region", "quarter", "units_sold", "revenue"],
)
.properties(width=600, height=350)
)
chart现在当您更改下拉菜单或滑块时,表格和图表会自动更新。
Marimo 可以与流行的可视化库(如 Matplotlib、Plotly、Altair、Seaborn 和 HoloViews)配合使用。它还可以将支持的图表中的选择传递回 Python,这使得构建更复杂的交互式分析工作流程成为可能。
6. 以应用形式运行笔记本
我最喜欢 Marimo 的功能之一是,相同的笔记本也可以转换为交互式应用程序。
从终端运行:
python -m marimo run analysis.py # 以只读应用形式运行Marimo 以应用模式启动笔记本并隐藏可编辑的 Python 代码。
这意味着您可以在开发过程中使用同一份文件探索数据,然后无需借助其他框架重新构建所有内容,即可将其作为简单的仪表板或交互式应用程序进行分享。
最后想法
使用 Marimo 后,我非常喜欢整个体验的简洁性。您可以编写标准的 Python 代码,添加交互式控件,可视化数据,并且无需设置独立的仪表板框架,即可将同一份笔记本转换为应用程序。
对于这种工作流程,与传统笔记本设置相比,Marimo 显得更加简洁。它涉及的组件更少,需要管理的额外依赖项也更少。您也不需要托管的 Jupyter 环境或独立的笔记本服务。安装好 Marimo 后,您可以在本地运行所有内容,并直接在浏览器中打开。
分享也更加容易,因为笔记本只是一个普通的 Python 文件。它与 Git 配合良好,其他人运行起来也很方便,不会出现常规的 .ipynb 笔记本状态和单元格顺序问题。
我也非常喜欢 Marimo 默认的精致外观。表格、滑块、下拉菜单和图表让即使是小型分析也能像真正的交互式应用程序一样,无需花费时间构建前端。
对我来说,这是 Marimo 最大的优势。它提供了一种非常简单、开箱即用的解决方案,可以从 Python 分析直接过渡到交互式且可展示的内容,而无需围绕它添加复杂的堆栈。
Abid Ali Awan(@1abidaliawan)是一名认证的数据科学家,热爱构建机器学习模型。目前,他专注于内容创作和撰写关于机器学习和数据科学技术的技术博客。Abid 拥有技术管理硕士学位和电信工程学士学位。他的愿景是使用图神经网络为有心理健康问题的学生构建 AI 产品。
更多相关内容
- 如何结合 Streamlit、Pandas 和 Plotly 创建交互式数据应用
- 忘记 Streamlit:创建交互式数据科学仪表板的...
- 使用 Python 构建交互式数据科学应用
- 使用 D3.js 创建交互式仪表板
- 如何在 R 中创建交互式可视化
- 大多数数据科学家不使用的高级 Pandas 模式
<hr class="grey-line"><br> <div><h3>我们推荐的 5 门免费课程</h3><br> </div>
Mailchimp for WordPress v4.14.1 - https://wordpress.org/plugins/mailchimp-for-wp/
/ Mailchimp for WordPress 插件
您可以从此处开始编辑。
如果评论已关闭。
<= 上一篇文章
下一篇文章 =>
#content end
<script type="text/javascript">kda_sid_write(kda_sid_n);</script>
最新文章
- 2026年BrowserAct AI网络爬虫:使用Docling从杂乱文档构建一次,重复运行生成结构化数据
如何使用Marimo进行交互式数据分析 10个让代码更简洁高效的Python单行语句 AI刚刚解决了数学领域的一大难题? 使用Ollama管理本地语言模型:KDnuggets速查表
热门文章
- 5分钟搞懂MCP
- 5门免费课程学习AI工程
- SuperWhisper s1-mini:专为转录设计的6亿参数模型
- 7个高级Python技巧,提升你的编码技能
- 使用Ollama管理本地语言模型:KDnuggets速查表
- 7个可本地运行的ChatGPT开源替代方案
- 2026年可使用的5个免费LLM API提供商
- 如何利用AI将Excel数据转换为PowerPoint演示文稿
- 关于DeepSeek Harness的深度学习
- 初学者常犯的7个Python错误(以及正确做法)
#content_wrapper end
© 2026
Guiding Tech Media
|
关于
联系我们
广告合作
隐私政策
服务条款
2026年10月1日由
blank
不,谢谢!
/.main_wrapper
<script defer type="text/javascript" src="https://s7.addthis.com/js/300/addthis_widget.js#pubid=gpsaddthis"></script>
noptimize
/noptimize