日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747


讓你的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 jupyter-js-widgets/extension...
       - Validating: ok

現在重啟你的 Jupyter Notebook 即可。

本文用到的包如下:

 import pandas as pd
 import numpy as np
 
 import ipywidgets as wg
 from IPython.display import display

 

可以不修改代碼嗎

如果你經常需要從各種文件加載你的數據,那么下面的代碼真的是司空見慣:

讓你的Python代碼加上界面,你從未想到竟然這么簡單

 

但是,你不可能每天都從同一個文件中加載數據,那么明天該怎么執行這段自動化腳本?

沒錯!就是修改代碼中的文件路徑。

這勉強可以接受,但是能有更好的方式嗎?

先從簡單的來,比如在一個文本框中輸入文件名字與工作表名字,點擊加載按鈕即可運行你的代碼:

讓你的Python代碼加上界面,你從未想到竟然這么簡單

 


填入文件名字

首先,把我們的執行邏輯定義到一個函數中:

讓你的Python代碼加上界面,你從未想到竟然這么簡單

 

  • 函數非常簡單,只是把其中的文件路徑和工作表名字提取作為參數
  • 注意2個參數都給了一個默認的空字符串值

然后,為這個函數打上裝飾器,并執行:

讓你的Python代碼加上界面,你從未想到竟然這么簡單

 

  • 行1:@wg.xxxx 是某個 ipywidgets 的裝飾器,為什么這里是 @wg ? 這是因為一開始我們的導入語句是 import ipywidgets as wg ,這是我們定義的別名
  • @wg.interact_manual() ,是手動交互的意思,這情況下,他會根據目標函數的各個參數的默認值類型,判斷分別應該使用哪種控件
  • 比如,我們的函數的2個參數都是字符串類型,因此他會自動生成2個文本框
  • 在所有交互控件的下方,會生成一個按鈕

 

此時,我們往2個文本框輸入相應的信息,點擊最后的按鈕即可加載數據:

讓你的Python代碼加上界面,你從未想到竟然這么簡單

 

如果可以直接讓我選擇當前目錄下的所有文件名,那就太好了!

 

選擇一個文件

剛剛說過,ipywidgets 的裝飾器能自動根據參數默認值的類型生成適合的交互控件,這次,我們讀取當前目錄下的所有 Excel 文件路徑的列表,看看會有啥效果:

讓你的Python代碼加上界面,你從未想到竟然這么簡單

 

  • 行1,2:使用 pathlib2 得到當前目錄的所有 xlsx 后綴的文件列表
  • 行5:把上一步得到的文件列表,直接賦值給函數的參數 file 的默認值
  • 現在看到,第一個交互控件最右邊有一個小下標,很明顯,這是一個下拉選擇框
讓你的Python代碼加上界面,你從未想到竟然這么簡單

 

  • 點擊后,可以選擇文件

還有更多

那么,是不是連工作表名字也可以根據選擇的文件名字,轉為下拉選擇框?

讓你的Python代碼加上界面,你從未想到竟然這么簡單

 

  • 這會有一些難度,本系列之后有詳細的講解

 

現在只是加載了數據,如果可以輸入查詢條件,過濾數據,那就太好了!

雖然要求越來越過分,但是也是可以的。

如下是可以選擇某個日期,并且加載數據中小于這個日期的記錄:

讓你的Python代碼加上界面,你從未想到竟然這么簡單

 

如果你覺得這還不夠好,我們還可以結合 pandas 的 query 方法,現在改變篩選條件,不再需要修改代碼了:

讓你的Python代碼加上界面,你從未想到竟然這么簡單

 

本系列將教會你這些,記得關注噢!

分享到:
標簽:界面 Python
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定