python做出漂亮的界⾯代码_让你的Python代码加上界⾯,你
从未想到竟然这么简单...
此系列⽂章收录在中:数据⼤宇宙 > Python > iwg
转发本⽂并私信我"python",即可获得Python资料以及更多系列⽂章(持续更新的)
⼀个专栏让从⼊门到精通 pandas ,⾥⾯还有许多实战数据处理、分析案例:
前⾔
Python 配合上各式各样的数据相关库,让我们轻松做出各种⾃动化效果,但是,有时候我们也会羡慕那种界⾯的操作,毕竟⼤家都喜欢点点⿏标就能让⾃动化跑起来。
本系列将重点讲解如何在 Jupyter Notebook 上如何⽤最⼩的代码,快速为你的⾃动化代码加上实⽤的界⾯。
我们将从⼀个加载数据的场景开始我们的学习之旅!
本系列⼤部分情况下都是基于 ipywidgets 在 Jupyter Notebook 下⼯作,请确保安装 ipywidgets 库与相应的 jp 插件。
执⾏如下命令即可完成安装:
pip install ipywidgets && jupyter nbextension enable --py widgetsnbextension
直到看到如下信息:
Enabling notebook extension
- Validating: ok
现在重启你的 Jupyter Notebook 即可。
本⽂⽤到的包如下:
import pandas as pd
import numpy as np
import ipywidgets as wg
from IPython.display import display
可以不修改代码吗
如果你经常需要从各种⽂件加载你的数据,那么下⾯的代码真的是司空见惯:
但是,你不可能每天都从同⼀个⽂件中加载数据,那么明天该怎么执⾏这段⾃动化脚本?
没错!就是修改代码中的⽂件路径。
这勉强可以接受,但是能有更好的⽅式吗?
先从简单的来,⽐如在⼀个⽂本框中输⼊⽂件名字与⼯作表名字,点击加载按钮即可运⾏你的代码:
填⼊⽂件名字
⾸先,把我们的执⾏逻辑定义到⼀个函数中:
函数⾮常简单,只是把其中的⽂件路径和⼯作表名字提取作为参数
注意2个参数都给了⼀个默认的空字符串值
然后,为这个函数打上装饰器,并执⾏:
⾏1:@wg.xxxx 是某个 ipywidgets 的装饰器,为什么这⾥是 @wg ? 这是因为⼀开始我们的导⼊语句是 import ipywidgets as wg ,这是我们定义的别名
@wg.interact_manual() ,是⼿动交互的意思,这情况下,他会根据⽬标函数的各个参数的默认值类型,判断分别应该使⽤哪种控件
⽐如,我们的函数的2个参数都是字符串类型,因此他会⾃动⽣成2个⽂本框
在所有交互控件的下⽅,会⽣成⼀个按钮
此时,我们往2个⽂本框输⼊相应的信息,点击最后的按钮即可加载数据:
如果可以直接让我选择当前⽬录下的所有⽂件名,那就太好了!
选择⼀个⽂件
刚刚说过,ipywidgets 的装饰器能⾃动根据参数默认值的类型⽣成适合的交互控件,这次,我们读取当前⽬录下的所有 Excel ⽂件路径的列表,看看会有啥效果:
⾏1,2:使⽤ pathlib2 得到当前⽬录的所有 xlsx 后缀的⽂件列表
⾏5:把上⼀步得到的⽂件列表,直接赋值给函数的参数 file 的默认值
现在看到,第⼀个交互控件最右边有⼀个⼩下标,很明显,这是⼀个下拉选择框
点击后,可以选择⽂件
还有更多
那么,是不是连⼯作表名字也可以根据选择的⽂件名字,转为下拉选择框?
这会有⼀些难度,本系列之后有详细的讲解
现在只是加载了数据,如果可以输⼊查询条件,过滤数据,那就太好了!
虽然要求越来越过分,但是也是可以的。
如下是可以选择某个⽇期,并且加载数据中⼩于这个⽇期的记录:
如果你觉得这还不够好,我们还可以结合 pandas 的 query ⽅法,现在改变筛选条件,不再需要修改代码了:
本系列将教会你这些,记得关注噢!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论