京公网安备 11010802034615号
经营许可证编号:京B2-20210330
作者:刘早起
来源:早起Python
如何在线执行 pandas 代码感兴趣,今天就简单来说一下我探索这一功能的过程。
首先在设计这一功能时,需要先明确大致需求:
其中最重要的一点就是用户可以在当前网站、当前单元格执行代码,其次尽可能的减少其他操作。
其实为了实现这个功能,我探索了大半个月,不断修改方案,删掉了几个写了很久但是不能完美实现的代码,几度放弃,最后还是磕磕碰碰的做出来,下面是我的一些经验,仅供参考。
首先最简单的思路就是用自己的服务器,前端写一个输入框,然后将用户提交的代码到后台,执行后再返回前端,就像这样
但是思索了一番还是放弃了,除了要防止恶意用户执行sudo rm - rf /*之类的代码,为了满足第二个需求就要给每个用户分配一定的空间,这就很吃服务器的配置,例如前天最高100+用户同时运行,我的 4c8g 服务器肯定是带不动的。
并且如果采取这个的方案,理论上可以实现,但除了升级服务器要钱,我也没有开发类似产品的经验,时间成本不好预估,遂放弃。
之后又是一番面向 stackoverflow 编程,我了解到很多可以在线执行代码的网站,就像这样
确实可以在线执行一段代码,但是除去我是否能做出来,如何控制权限等问题,这样的网站主要是以执行代码为主,无法完成 pandas 教程的任务。
并且代码不能预设置,只能进入页面后手动输入,本地数据也不好加载,而且执行一次就要跳转到一个新的页面,十分繁琐(写一个爬虫接口也是一个办法,但是就太依赖对方网站),于是很快放弃了这条思路。
继续一番搜索后,我发现了一个神器 —— Jupyterhub
如上图架构展示的一样,使用Jupyterhub 可以给每个用户分配一个独立的Jupyter Notebook,并且无需考虑权限等问题,我也可以提前将代码和数据进行预设。
但问题在于采取此方案无法满足教程需求,因为全部内容都需要放在 Jupyter Notebook中,整体上就是将 pandas300题做成了在线版,而我想要的是一个网站。
并且使用Jupyterhub不可避免的要进行一些 docker 或 k8s 操作,这也不是我熟悉的领域,虽热在这条思路上走了一段时间,但还是放弃了。
之后又是一番检索,但无非都是上面几种方案,在我感觉要放弃做这个网站时,无意中发现一个项目JupyterBook
简单来说,他可以将你的 Jupyter Notebook 转换为 html 页面(基于 sphinx),并且一个很重要的特点就是可以在线、交互式执行代码。
具体怎么实现的呢?首先需要将你的项目上传到一个公共资源平台binder,这个网站会为你的项目创建一个镜像,这样可以方便给不同用户使用
简单来说,可以理解为将你的 Jupyter Notebook 挂在这个网站,别人就能去在线执行,但是很明显,我们都需要跳转到这个页面去使用,而我希望在当前页面执行代码。
这时就需要在使用另一个项目(Thebe)
它使用JupyterLab API,通过加载一段JS代码,再指定一个执行后端(上面提到的binder),就可以在当前页面执行代码。
听起来很复杂,但是实现起来很简单,上面我们说到,JupyterBook 是基于 Sphinx制作页面的,所以只需要提前在配置 Sphinx时加载 sphinx_thebe插件即可,
至此,开头我需求中的1、2就完美实现了,还剩最后一个问题就是如何让用户更少的执行代码?
如果你体验过我的网站,你会发现执行一个 pandas 操作连 import pandas as pd和读取数据的操作都不用!
其实这些代码在启动jupyter notebook时就预先加载了,只需要在对应单元格上加上 thebe-init的 tag 即可。
当然,使用 JupyterBook 还是有很多坑,消耗我最多的时间就是在修改样式上,默认的样式如下,可能英文状态下表现还行,但是到中文并不是很适配
为了大家不仅用的爽,我对网站颜值的要求也很高,于是爆改了几千行的 css 和 js 代码,甚至组件的位置都调整到小数点后两位才让我满意,磕磕碰碰一个多月终于将整个网站做出来
最后,本文仅是对在线执行代码做了一个快速、不完整的总结。由于篇幅限制,还有很多搭建、部署网站细节的内容没有涉及到,如果你觉得不错,欢迎点赞、转发。
CDA学员免费下载查看报告全文:2026全球数智化人才指数报告【CDA数据科学研究院】.pdf
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在Excel数据分析中,数据透视表是汇总、整理海量数据的高效工具,而公式则是实现数据二次计算、逻辑判断的核心功能。实际操作中 ...
2026-04-30Excel透视图是数据分析中不可或缺的工具,它能将透视表中的数据快速可视化,帮助我们直观捕捉数据规律、呈现分析结果。但在实际 ...
2026-04-30 很多数据分析师能熟练地计算指标、搭建标签体系,但当被问到“画像到底在解决什么问题”“画像和标签是什么关系”“画像如何 ...
2026-04-30在中介效应分析中,人口统计学变量(如年龄、性别、学历、收入、职业等)是常见的控制变量或调节变量,其处理方式直接影响分析结 ...
2026-04-29在SQL数据库实操中,日期数据的存储与显示是高频需求,而“数字日期”(如20240520、20241231、45321)是很多开发者、数据分析师 ...
2026-04-29 很多分析师在设计标签时思路清晰,但真到落地环节却面临“数据在手,不知如何转化为可用标签”的困境:或因加工方式选择不当 ...
2026-04-29在手游行业竞争日趋白热化的当下,“流量为王”早已升级为“留存为王”,而付费用户留存率更是衡量一款手游盈利能力、运营质量的 ...
2026-04-28在日常MySQL数据库运维与开发中,经常会遇到“同一台服务器上,两个不同数据库(以下简称“源库”“目标库”)的表数据需要保持 ...
2026-04-28 很多分析师每天和数据打交道,但当被问到“标签是什么”“标签和指标有什么区别”“标签体系如何设计”时,却常常答不上来。 ...
2026-04-28箱线图(Box Plot)作为一种经典的数据可视化工具,广泛应用于统计学、数据分析、科研实证等领域,核心价值在于直观呈现数据的集 ...
2026-04-27实证分析是社会科学、自然科学、经济管理等领域开展研究的核心范式,其核心逻辑是通过对多维度数据的收集、分析与解读,揭示变量 ...
2026-04-27 很多数据分析师精通Excel函数和数据透视表,但当被问到“数据从哪里来”“表和视图有什么区别”“数据库管理系统和SQL是什么 ...
2026-04-27在大数据技术飞速迭代、数字营销竞争日趋激烈的今天,“精准触达、高效转化、成本可控”已成为企业营销的核心诉求。传统广告投放 ...
2026-04-24在游戏行业竞争白热化的当下,用户流失已成为制约游戏生命周期、影响营收增长的核心痛点。据行业报告显示,2024年移动游戏平均次 ...
2026-04-24 很多业务负责人开会常说“我们要数据驱动”,最后却变成“看哪张报表数据多就用哪个”,往往因为缺乏一套结构性的方法去搭建 ...
2026-04-24在Power BI数据可视化分析中,切片器是连接用户与数据的核心交互工具,其核心价值在于帮助使用者快速筛选目标数据、聚焦分析重点 ...
2026-04-23以数为据,以析促优——数据分析结果指导临床技术改进的实践路径 临床技术是医疗服务的核心载体,其水平直接决定患者诊疗效果、 ...
2026-04-23很多数据分析师每天盯着GMV、DAU、转化率,但当被问到“哪些指标是所有企业都需要的”“哪些指标是因行业而异的”“北极星指标和 ...
2026-04-23在数字化时代,客户每一次点击、浏览、下单、咨询等行为,都在传递其潜在需求与决策倾向——这些按时间顺序串联的行为轨迹,构成 ...
2026-04-22数据是数据分析、建模与业务决策的核心基石,而“数据清洗”作为数据预处理的核心环节,是打通数据从“原始杂乱”到“干净可用” ...
2026-04-22