日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Python 數據處理,Pandas 使用方式的變局

來源: 責編: 時間:2023-12-12 17:01:31 260觀看
導讀前段時間在公司技術分享會上,同事介紹了目前市面上關于自動生成 pandas 代碼的工具庫。我們也嘗試把這些工具庫引入到工作流程中。經過一段時間的實踐,最終還是覺得不適合,不再使用這些工具庫。今天就來給大家說一下其中

前段時間在公司技術分享會上,同事介紹了目前市面上關于自動生成 pandas 代碼的工具庫。我們也嘗試把這些工具庫引入到工作流程中。經過一段時間的實踐,最終還是覺得不適合,不再使用這些工具庫。Tsy28資訊網——每日最新資訊28at.com

今天就來給大家說一下其中的緣由,以及有什么其他可能的解決方案。Tsy28資訊網——每日最新資訊28at.com

Tsy28資訊網——每日最新資訊28at.com

操作生成代碼

pandas 可以說是辦公自動化的神器,畢竟大部分的任務都需要處理結構化數據。目前python生態中,已經有好幾款能通過操作界面,自動生成 pandas 代碼的工具庫。Tsy28資訊網——每日最新資訊28at.com

比如 Mito :Tsy28資訊網——每日最新資訊28at.com

Tsy28資訊網——每日最新資訊28at.com

比如 pandas gui:Tsy28資訊網——每日最新資訊28at.com

Tsy28資訊網——每日最新資訊28at.com

比如 dtale :Tsy28資訊網——每日最新資訊28at.com

Tsy28資訊網——每日最新資訊28at.com

他們可以通過你的手工操作,把操作過程中的代碼生成出來。Tsy28資訊網——每日最新資訊28at.com

聽起來很不錯吧。以后就不用自己寫 pandas 就能輕松得到自動化處理腳本。事實卻并非如此。Tsy28資訊網——每日最新資訊28at.com

其實,自動生成代碼這件事情,實現并不難。我并不是在說大話,因為以前我也制作過這種工具。但是最終因為發現了工具的瓶頸,而沒有更新下去。當初我發現的那些工具瓶頸,恰恰是我們公司放棄這些工具庫的主要原因。Tsy28資訊網——每日最新資訊28at.com

工程化更重要

當初我之所以制作自動化生成pandas工具,主要是因為我會經常到 kaggle 上找一些數據做數據探索。Tsy28資訊網——每日最新資訊28at.com

數據探索是一件非常"反代碼"的事情,這是因為在你拿到數據之后,此時你并不知道下一步該怎么處理它。所以通常情況下,我會選擇使用 excel 的透視表完成這項任務。但是往往需要把最終的探索過程自動化。這就迫使我使用pandas做數據探索。Tsy28資訊網——每日最新資訊28at.com

我會經常寫出類似下面的代碼結構:Tsy28資訊網——每日最新資訊28at.com

Tsy28資訊網——每日最新資訊28at.com

其實那時候我已經積累了不少常用的pandas自定義功能模塊。但是,這種模式不方便分享。畢竟數據處理的常用功能其實非常多,套路和技巧如果都制作成模塊,在公司團隊協作上,學習成本很高。Tsy28資訊網——每日最新資訊28at.com

那么,有沒有其他的工具可以解決?期間我嘗試過一些 BI 工具的使用。比如 power bi 的數據處理工具 power query。它可以解決一部分的問題,但遠遠沒達到 pandas 的靈活。另一個讓我印象深刻的工具就要數 tabluea 的數據工具 —— prepTsy28資訊網——每日最新資訊28at.com

本質上它與 power query 大同小異,不過它可以讓流程可視化。下面是 prep 的工作界面:Tsy28資訊網——每日最新資訊28at.com

Tsy28資訊網——每日最新資訊28at.com

每次操作都能生成在流程圖上體現,并且每一個節點都可以查看它的輸入數據和輸出結果。Tsy28資訊網——每日最新資訊28at.com

Tsy28資訊網——每日最新資訊28at.com

那時候我一下子明白了,為什么不管怎么規范和模塊化pandas代碼,總是感覺很難管理。Tsy28資訊網——每日最新資訊28at.com

我們需要的并不是自動生成pandas代碼,而是生成能體現流程的代碼信息。Tsy28資訊網——每日最新資訊28at.com

其實這也是我學習pandas的方法論,集中精力學習少數核心的方法,更重要的是學會數據流的思維。比如在我編寫的pandas專欄中,就有一個案例講解如何編排你的pandas代碼:Tsy28資訊網——每日最新資訊28at.com

Tsy28資訊網——每日最新資訊28at.com

Tsy28資訊網——每日最新資訊28at.com

說回現有的一些自動生成代碼的工具庫,它們無一例外只是生成一大串密密麻麻的代碼。你無法從中得知操作意圖。過幾天再看這些代碼,你都無從下手。Tsy28資訊網——每日最新資訊28at.com

有人會說,你可以自己定義函數,封裝工具生成出來的代碼。其實我們公司一開始也是這么干,但實際情況是,我們經常因為需求變化,而去改動里面的邏輯。此時因為工具無法再次重現你的操作步驟。你只能默默手工把代碼實現一遍。Tsy28資訊網——每日最新資訊28at.com

總的來說,這些工具的缺點是:Tsy28資訊網——每日最新資訊28at.com

  • 沒有可視化操作流程節點
  • 生成的代碼沒有函數化
  • 無法自定義功能

由此可以得知它的應用場景是一些非常簡單或無須長期維護代碼的任務。Tsy28資訊網——每日最新資訊28at.com

既然上面說的 tableau prep 這么好,為什么不直接用它?因為它是收費的。并且它也無法做到自定義功能。Tsy28資訊網——每日最新資訊28at.com

難道就不能破局嗎?其實我從未放棄。Tsy28資訊網——每日最新資訊28at.com

一切皆有可能

現在我們來推敲一下,目前有沒有足夠的工具實現"假想"。Tsy28資訊網——每日最新資訊28at.com

要做可視化操作工具,首當其沖就是要制作操作界面。目前 python 已經有了許多 web ui 框架,其中本人覺得最靈活最有潛力的就是 nicegui 。我也已經推出了一系列相關的實戰示例視頻,其實我之所以學習 nicegui,正是希望為 pandas 以及 pybi-next 打造各種輔助工具。Tsy28資訊網——每日最新資訊28at.com

用 nicegui 做一個大概的功能界面非常容易:Tsy28資訊網——每日最新資訊28at.com

Tsy28資訊網——每日最新資訊28at.com

該怎么樣設計每一個功能的結構?比如,要實現上圖功能區中的篩選功能,我們可以把每個功能視為一個函數:Tsy28資訊網——每日最新資訊28at.com

Tsy28資訊網——每日最新資訊28at.com

想辦法讓函數的各個參數映射成一個界面組件:Tsy28資訊網——每日最新資訊28at.com

Tsy28資訊網——每日最新資訊28at.com

這是一個在 juperter notebook 的一個界面組件庫給到我的啟發。利用裝飾器,函數定義的參數類型等信息,可以自動根據函數創建對應的可視化界面。Tsy28資訊網——每日最新資訊28at.com

在導出代碼的時候,我們無須把函數里面的散亂的代碼輸出,而是直接輸出函數定義,以及函數的調用即可。Tsy28資訊網——每日最新資訊28at.com

也就是說,假如用戶在界面上操作了兩次篩選功能,生成的代碼是這樣子:Tsy28資訊網——每日最新資訊28at.com

Tsy28資訊網——每日最新資訊28at.com

這就解決了輸出代碼過于散亂的問題。Tsy28資訊網——每日最新資訊28at.com

不僅如此,使用者同樣可以通過這種方式輕易制作自定義的功能。Tsy28資訊網——每日最新資訊28at.com

那么,怎么可以制作出類似 tableau prep 的操作流程界面?由于 nicegui 本身的靈活性,我們可以充分利用前端強大的資源,在我之前的文章中,就介紹過關于這方面的實現。Tsy28資訊網——每日最新資訊28at.com

Tsy28資訊網——每日最新資訊28at.com

Tsy28資訊網——每日最新資訊28at.com

只要整體機制能跑通,剩下的只是實現細節而已。接下來,我也會把制作過程涉及到的一些有用的python知識分享出來。Tsy28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-43312-0.htmlPython 數據處理,Pandas 使用方式的變局

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Python設計模式:模板方法模式

下一篇: Goland2023年度最值得關注的重大更新,寫代碼更絲滑了

標簽:
  • 熱門焦點
  • 6月安卓手機好評榜:魅族20 Pro蟬聯冠軍

    性能榜和性價比榜之后,我們來看最后的安卓手機好評榜,數據來源安兔兔評測,收集時間2023年6月1日至6月30日,僅限國內市場。第一名:魅族20 Pro好評率:95%5月份的時候魅族20 Pro就是
  • Java NIO內存映射文件:提高文件讀寫效率的優秀實踐!

    Java的NIO庫提供了內存映射文件的支持,它可以將文件映射到內存中,從而可以更快地讀取和寫入文件數據。本文將對Java內存映射文件進行詳細的介紹和演示。內存映射文件概述內存
  • 這款新興工具平臺,讓你的電腦效率翻倍

    隨著信息技術的發展,我們獲取信息的渠道越來越多,但是處理信息的效率卻成為一個瓶頸。于是各種工具應運而生,都在爭相解決我們的工作效率問題。今天我要給大家介紹一款效率
  • 破圈是B站頭上的緊箍咒

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之每年的暑期檔都少不了瞄準追劇女孩們的古偶劇集,2021年有優酷的《山河令》,2022年有愛奇藝的《蒼蘭訣》,今年卻輪到小破站抓住了追
  • 最“俊美”淘寶賣家,靠直播和短視頻圈粉,上架秒光,年銷3000萬

    來源 | 電商在線文|易琬玉編輯|斯問受訪店鋪:Ringdoll戒之人形圖源:微博@御座的黃山、“Ringdoll戒之人形”淘寶店鋪有關外貌的評價,黃山已經聽累了。生于1985年的他,哪
  • 猿輔導與新東方的兩種“歸途”

    作者|卓心月 出品|零態LT(ID:LingTai_LT)如何成為一家偉大企業?答案一定是對“勢”的把握,這其中最關鍵的當屬對企業戰略的制定,且能夠站在未來看現在,即使這其中的
  • 消費結構調整丨巨頭低價博弈,拼多多還卷得動嗎?

    來源:征探財經作者:陳香羽隨著流量紅利的退潮,電商的存量博弈越來越明顯。曾經主攻中高端與品質的淘寶天貓、京東重拾“低價”口號。而過去與他們錯位競爭的拼多多,靠
  • AI芯片初創公司Tenstorrent獲三星和現代1億美元投資

    Tenstorrent是一家由芯片行業資深人士Jim Keller領導的加拿大初創公司,專注于開發人工智能芯片,該公司周三表示,已經從現代汽車集團和三星投資基金等
  • “買真退假” 這種“羊毛”不能薅

    □ 法治日報 記者 王春   □ 本報通訊員 胡佳麗  2020年初,還在上大學的小東加入了一個大學生兼職QQ群。群主“七王”在群里介紹一些刷單賺
Top 主站蜘蛛池模板: 凤山县| 民丰县| 西平县| 五家渠市| 仁布县| 凯里市| 潢川县| 阿城市| 延边| 嘉定区| 从江县| 顺平县| 榕江县| 牟定县| 宝坻区| 辽中县| 赣州市| 南昌县| 罗平县| 保山市| 和静县| 红原县| 紫阳县| 尼勒克县| 怀来县| 白玉县| 西平县| 吉林省| 白银市| 丁青县| 汝阳县| 沿河| 普安县| 安化县| 闵行区| 济源市| 任丘市| 宁强县| 乳山市| 会东县| 平山县|