Python和Excel终于互通了!这个Jupyter插件能自动生成代码并实现数据分析
加載一個Jupyter插件后,無需寫代碼就能做數據分析,還幫你生成相應代碼?
沒錯,只需要加載這個名為Mito的小工具包,用Python做數據分析,變得和用Excel一樣簡單:
以 Excel 為代表的電子表格是探索數據集的最重要、最具適應性的方式之一。它可以幫助對數據類型進行必要的更改、創建新特征、對數據進行排序以及從現有特征中創建新特征。
遵循以上相同的思路,Mito是一個Jupyter-Lab擴展和Python庫,它使得在支持GUI的電子表格環境中操作數據變得超級容易。
Mito的出現,像是將Python的強大功能、和Excel的易用性進行了結合。
只需要掌握Excel的用法,就能使用Python的數據分析功能,還能將寫出來的代碼“打包帶走”。
它彌補了Excel在數據分析上的幾個缺陷:
- Excel無法做大數據分析(大型數據集處理得不好)
- Excel運行緩慢
- Excel無法輕松創建可重復流程
同時,又比SQL和Python更簡單、直觀。畢竟這些專業工具對于0基礎初學者來說,需要至少幾年時間,才能完全上手。
在本文中,我們將一起學習:
安裝Mito
Mito 是一個 Python 庫,可以通過 pip 包管理器安裝。它需要 Python 3.6 及以上版本。此外,系統上需要安裝 Nodejs,一個 JavaScript 運行時環境。
另外,可以在單獨的環境(虛擬環境)中安裝這個包,可以避免一些依賴錯誤。接下來在終端中運行這些命令,完成安裝即可。
1. 創建環境
我正在使用 Conda 創建一個新環境。你還可以使用 Python 的“venv”來創建虛擬環境。
conda create -n mitoenv python=3.82. 激活環境
conda activate mitoenv3. 通過pip安裝Mito
pip install mitoinstaller4. 運行 Mito 安裝程序
python -m mitoinstaller install此過程將需要一段時間來安裝和設置 Mito。
5. 啟動 Jupyter Lab
jupyter lab報錯解決
當啟動 Jupyter Lab時,可能會遇到如下錯誤:
. File "c:userslenovoanaconda3envsmitoenvlibsite-packagesjupyter_corepaths.py", line 387, in win32_restrict_file_to_userimport win32api ImportError: DLL load failed while importing win32api: The specified module could not be found.要修復此錯誤,只需運行以下命令:
pip install --upgrade pywin32==225如果你遇到其他困難,請隨時在下面發表評論。我很樂意提供幫助。
MitoSheets 界面
在 Jupyter Lab中,創建一個新筆記本并初始化 Mitosheet:
import mitosheet mitosheet.sheet()第一次,系統會提示輸入你的電子郵件地址進行注冊:
填寫完基礎知識后,將被重定向到 GUI 電子表格。接下來我們一起看看這個接口的所有特性,并一起學習如何生成 Python 等效代碼。
加載數據集
要在 MitoSheets 中加載數據集,只需單擊導入。有兩個選擇:
從當前文件夾添加文件:這將列出當前目錄中的所有 CSV 文件,可以從下拉菜單中選擇文件。
按文件路徑添加文件:這將僅添加該特定文件。
如下圖所示
如果你看下面的單元格,你會發現Python等效的代碼導入一個數據集使用pandas已經生成了適當的注釋!
這就是 Mito 的魅力,你在 Mitosheet 中執行的每個操作都將轉換為 Python 等效代碼!接下來我們一起詳細探討一下 Mito 的所有功能。
添加和刪除列
添加列
就像在 Excel 等電子表格中一樣,你可以添加一個新列,該列可能是從現有列或特征創建的。要在 Mito 中執行此操作,只需單擊“Add Col”按鈕。該列將添加到當前選定的列旁邊。最初,列名將是一個字母表,列的所有值都為零。
編輯新列的內容
下面的 GIF 演示了上面提到的所有內容:
刪除列
Python代碼
在下一個單元格中生成帶有正確注釋的 Python 等效代碼,用于執行的操作是:
# MITO CODE START (DO NOT EDIT) from mitosheet import * # Import necessary functions from Mito register_analysis('UUID-7bf77d26-84f4-48ed-b389-3f7a3b729753') # Let Mito know which analysis is being run # Imported edxCourses.csv import pandas as pd edxCourses_csv = pd.read_csv('edxCourses.csv') # Added column H to edxCourses_csv edxCourses_csv.insert(7, 'H', 0) # Renamed H to newCol in edxCourses_csv edxCourses_csv.rename(columns={"H": "newCol"}, inplace=True) # Set newCol in edxCourses_csv to =coursePrice + courseEnrollments edxCourses_csv['newCol'] = edxCourses_csv['coursePrice'] + edxCourses_csv['courseEnrollments'] # Deleted column newCol from edxCourses_csv edxCourses_csv.drop('newCol', axis=1, inplace=True) # MITO CODE END (DO NOT EDIT)創建數據透視表
數據透視表是一個重要的 excel 功能,它根據另一個分類特征匯總數字變量。要使用 Mito 創建這樣的表,
下面的 GIF 演示了如何為聚合函數“均值”創建數據透視表:
Python代碼
# MITO CODE START (DO NOT EDIT) from mitosheet import * # Import necessary functions from Mito register_analysis('UUID-a35246c0-e0dc-436b-8667-076d4f08e0c1') # Let Mito know which analysis is being run # Imported edxCourses.csv import pandas as pd edxCourses_csv = pd.read_csv('edxCourses.csv') # Pivoted edxCourses_csv into df2 pivot_table = edxCourses_csv.pivot_table(index=['courseOrganization'],values=['coursePrice'],aggfunc={'coursePrice': 'mean'} ) # Reset the column name and the indexes df2 = pivot_table.rename_axis(None, axis=1).reset_index() # MITO CODE END (DO NOT EDIT)合并兩個數據集
合并數據集是數據科學項目的重要組成部分。通常,數據集被劃分到不同的表格中,以增加信息的可訪問性和可讀性。合并 Mitosheets 很容易。
Python代碼
# MITO CODE START (DO NOT EDIT) from mitosheet import * # Import necessary functions from Mito register_analysis('UUID-88ac4a92-062f-4ed8-a55d-729394975740') # Let Mito know which analysis is being run # Imported Airport-Pets.csv, Zipcode-Data.csv import pandas as pd Airport_Pets_csv = pd.read_csv('Airport-Pets.csv') Zipcode_Data_csv = pd.read_csv('Zipcode-Data.csv') # Merged Airport_Pets_csv and Zipcode_Data_csv temp_df = Zipcode_Data_csv.drop_duplicates(subset='Zip') Airport_Pets_csv_tmp = Airport_Pets_csv.drop(['State', 'Division'], axis=1) Zipcode_Data_csv_tmp = temp_df.drop(['Mean_Income', 'Pop'], axis=1) df3 = Airport_Pets_csv_tmp.merge(Zipcode_Data_csv_tmp, left_on=['Zip'], right_on=['Zip'], how='left', suffixes=['_Airport_Pets_csv', '_Zipcode_Data_csv']) # MITO CODE END (DO NOT EDIT)修改列數據類型、排序和過濾
你可以更改現有列的數據類型,按升序或降序對列進行排序,或通過邊界條件過濾它們。在 Mito 中的這些都很簡單,可以通過選擇屏幕上的選項通過GUI本身完成。
Python代碼
# MITO CODE START (DO NOT EDIT) from mitosheet import * # Import necessary functions from Mito register_analysis('UUID-cc414267-d9aa-4017-8890-ee3b7461c15b') # Let Mito know which analysis is being run # Imported edxCourses.csv import pandas as pd edxCourses_csv = pd.read_csv('edxCourses.csv') # Changed coursePrice from int64 to float edxCourses_csv['coursePrice'] = edxCourses_csv['coursePrice'].astype('float') # Sorted coursePrice in edxCourses_csv in descending order edxCourses_csv = edxCourses_csv.sort_values(by='coursePrice', ascending=False, na_position='first') edxCourses_csv = edxCourses_csv.reset_index(drop=True) # Filtered coursePrice in edxCourses_csv edxCourses_csv = edxCourses_csv[edxCourses_csv['coursePrice'] >= 500] edxCourses_csv = edxCourses_csv.reset_index(drop=True) # MITO CODE END (DO NOT EDIT)圖表和統計數據生成
還可以直接在此擴展中生成圖形,而無需編寫繪圖邏輯。默認情況下,此擴展生成的所有圖都是使用 Plotly 制作的。這意味著繪圖是交互式的,可以即時修改。
注意,這里并沒有像操作列一樣,在下一個單元格中生成圖形代碼(也許開發人員會在以后的更新中推送此代碼)
可以使用 Mito 生成兩種類型的圖:
1. 通過點擊圖表按鈕
你將看到一個側邊欄菜單,用于選擇圖形類型和要選擇的相應軸。
2. 通過點擊列名
當你點擊電子表格中的列名稱時,可以看見過濾器和排序選項。但如果你導航到“Summary Stats”,則會根據變量的類型顯示線圖或條形圖以及變量的摘要。此摘要更改為文本和沒有文本變量。
保存和回放
對數據集所做的所有轉換都可以保存并用于其他類似的數據集。這在 Excel 中采用宏或 VBA 的形式。也可以通過這些功能完成相同的操作。
文件是以Python編寫的,而不是用比較難懂的VBA。
回溯執行的所有步驟
要想重復上面的步驟的話,也非常容易,Mito自帶“重復已保存分析步驟”功能,一鍵就能用同樣的方法分析其他數據。這個功能是最有趣的。你實際上可以追蹤在Mitosheet 中應用的所有轉換。所有操作的列表都帶有適當的標題。
此外,你可以查看該特定步驟!這意味著假設你更改了一些列,然后刪除了它們。你可以退回到未刪除的時間。
寫在最后
新工具“Mito”,用于在 Python 環境中實現類似電子表格的功能,并為所做的每一步生成等效操作的 Python 代碼。
關于Python學習資料:
在學習python中有任何困難不懂的可以微信掃描下方CSDN官方認證二維碼加入python交流學習
多多交流問題,互幫互助,這里有不錯的學習教程和開發工具。
(python兼職資源+python全套學習資料)
一、Python所有方向的學習路線
Python所有方向的技術點做的整理,形成各個領域的知識點匯總,它的用處就在于,你可以按照上面的知識點去找對應的學習資源,保證自己學得較為全面。
二、Python必備開發工具
三、Python視頻合集
觀看零基礎學習視頻,看視頻學習是最快捷也是最有效果的方式,跟著視頻中老師的思路,從基礎到深入,還是很容易入門的。
四、實戰案例
光學理論是沒用的,要學會跟著一起敲,要動手實操,才能將自己的所學運用到實際當中去,這時候可以搞點實戰案例來學習。
五、Python練習題
檢查學習結果。
六、面試資料
我們學習Python必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、字節等一線互聯網大廠最新的面試資料,并且有阿里大佬給出了權威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。
最后,千萬別辜負自己當時開始的一腔熱血,一起變強大變優秀。
總結
以上是生活随笔為你收集整理的Python和Excel终于互通了!这个Jupyter插件能自动生成代码并实现数据分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 究竟是什么在决定着我们的命运?
- 下一篇: Most socially-distan