使用JupyterLab(Jupyter Notebook)分析数据时,一遍又一遍地重新运行同一单元格(每次稍微修改参数)的代码是非常低效的。尽管如此我还是会这么做,例如为函数选择不同的值,为分析选择不同的日期范围,甚至调整图表的主题。这不仅效率低下,而且令人沮丧,破坏了探索性数据分析的流程。
解决问题的理想方案是使用交互式控件来更改输入,而无需重新运行代码。幸运的是已经有人创造了解决问题的工具。在本文中,我们将学习如何使用Ipywidgets,使用短短几行代码来构建交互式控件。这个库能够将Jupyter Notebook从静态文档转变为交互式仪表盘(Interactive Dashboard),大幅提升数据分析的效率。
安装和配置ipywidgets
先用pip安装ipywidgets: pip install ipywidgets
安装完成后在Jupyter Notebook中激活:
jupyter nbextension enable --py widgetsnbextension
如果使用Jupyterlab,运行以下代码:
jupyter labextension install @jupyter-widgets/jupyterlab-manager
在Notebook中导入并使用ipywidgets:
import ipywidgets as widgets
from ipywidgets import interact, interact_manual
交互式控件入门
假设我们有一个数据框(dataframe),包含Medium文章的统计信息:
如何查看总阅读次数超过1000的文章?
df.loc[df['reads'] > 1000]
如果要显示点赞超过500的文章,必须编写一行新的代码:
df.loc[df['claps'] > 500]
如果不用编写更多代码就可以快速更改这些参数,那不是很好吗&