Papermill:把 Jupyter 笔记本玩出新花样!
Papermill 是个挺有意思的工具,它能让咱们的 Jupyter 笔记本变得更灵活。写好一个笔记本后,想换不同的参数重跑?想批量处理一堆数据?用 Papermill 就对了!它让笔记本从静态文档变成了可以自动化运行的“小程序”。
1.
参数化笔记本咋整?
要用 Papermill,得先给笔记本里的参数做个标记。我习惯在一个单独的 cell 里放所有参数,加个特殊的标签 parameters:
# 这个 cell 要标记为 parameters
data_path = “data/sales.csv”
threshold = 100
max_items = 1000
弄完这个,笔记本里其他地方就能随便用这些参数了。改参数的时候不用翻来翻去改代码,多清爽!
2.
跑起来!
参数标记好了,就能用 Python 代码执行这个笔记本:
import papermill as pm
pm.execute_notebook(
'input.ipynb',
'output.ipynb',
parameters={
'data_path': 'new_data.csv',
'threshold': 200,
'max_items': 2000
}
)
温馨提示:output.ipynb 要是已经存在,Papermill 会直接覆盖掉它,记得提前备份重要文件哦!
3.
批量处理有妙招
要是手头有一堆数据要处理,可以玩个循环:
data_files = ['data1.csv', 'data2.csv', 'data3.csv']
for idx, file in enumerate(data_files):
pm.execute_notebook(
'template.ipynb',
f'output_{idx}.ipynb',
parameters={'data_path': file}
)
4.
错误处理要上心
代码运行要是出岔子了,Papermill 会抛出异常,咱得好好处理:
try:
pm.execute_notebook(...)
except pm.PapermillExecutionError as e:
print(f“哎呀,出错了:{str(e)}”)
调试的时候可以看看生成的 output 笔记本,每个 cell 的执行状态和错误信息都记录得清清楚楚。
把 Jupyter 笔记本变成可重复使用的模板,简直不要太爽!不用复制粘贴改来改去,代码更容易维护,效率蹭蹭往上涨。要是想把数据分析自动化,Papermill 绝对是个好帮手。
在看的,麻烦点一下再走好吗
领取专属 10元无门槛券
私享最新 技术干货