加載一個Jupyter插件后,無需寫代碼就能做數據分析,還幫你生成相應代碼?
沒錯,只需要加載這個名為Mito的小工具包,用Python做數據分析,變得和用Excel一樣簡單:
介紹以Excel為代表的電子表格是探索數據集的最重要、最具適應性的方式之一。它可以幫助對數據類型進行必要的更改、創建新特征、對數據進行排序以及從現有特征中創建新特征。
遵循以上相同的思路,Mito是一個Jupyter-Lab擴展和Python庫,它使得在支持GUI的電子表格環境中操作數據變得超級容易。
Mito的出現,像是將Python的強大功能、和Excel的易用性進行了結合。
只需要掌握Excel的用法,就能使用Python的數據分析功能,還能將寫出來的代碼“打包帶走”。
它彌補了Excel在數據分析上的幾個缺陷:
Excel無法做大數據分析(大型數據集處理得不好)Excel運行緩慢Excel無法輕松創建可重復流程同時,又比SQL和Python更簡單、直觀。畢竟這些***工具對于0基礎初學者來說,需要至少幾年時間,才能完全上手。
在本文中,我們將一起學習:
如何合理設置Mito如何debug安裝錯誤使用Mito提供的各種功能數據庫如何為對數據集所做的所有操作生成Python等效代碼安裝MitoMito是一個Python庫,可以通過pip包管理器安裝。它需要Python3.6及以上版本。此外,系統上需要安裝Nodejs,一個JavaScript運行時環境。
另外,可以在單獨的環境(虛擬環境)中安裝這個包,可以避免一些依賴錯誤。接下來在終端中運行這些命令,完成安裝即可。
1.創建環境我正在使用Conda創建一個新環境。你還可以使用Python的“venv”來創建虛擬環境。
condacreate-nmitoenvpython=3.82.激活環境condaactivatemitoenv3.通過pip安裝Mitopipinstallmitoinstaller4.運行Mito安裝程序python-mmitoinstallerinstall此過程將需要一段時間來安裝和設置Mito。
5.啟動JupyterLabjupyterlab報錯解決當啟動JupyterLab時,可能會遇到如下錯誤:
File"c:userslenovoanaconda3env***itoenvlibsite-packagesjupyter_corepaths.py",line387,inwin32_restrict_file_to_userimportwin32apiImportError:DLLloadfailedwhileimportingwin32api:Thespecifiedmodulecouldnotbefound.要修復此錯誤,只需運行以下命令:
pipinstall--upgradepywin32==225如果你遇到其他困難,請隨時在下面發表評論。我很樂意提供幫助。
MitoSheets界面在JupyterLab中,創建一個新筆記本并初始化Mitosheet:
importmitosheetmitosheet.sheet()第一次,系統會提示輸入你的電子郵件地址進行注冊:
填寫完基礎知識后,將被重定向到GUI電子表格。接下來我們一起看看這個接口的所有特性,并一起學習如何生成Python等效代碼。
加載數據集要在MitoSheets中加載數據集,只需單擊導入。有兩個選擇:
從當前文件夾添加文件:這將列出當前目錄中的所有CSV文件,可以從下拉菜單中選擇文件。按文件路徑添加文件:這將僅添加該特定文件。如下圖所示
如果你看下面的單元格,你會發現Python等效的代碼導入一個數據集使用pandas已經生成了適當的注釋!
這就是Mito的魅力,你在Mitosheet執行的每個操作都將轉換為Python等效代碼!接下來我們一起詳細探討一下Mito的所有功能。
添加和刪除列添加列就像在Excel等電子表格中一樣,你可以添加一個新列,該列可能是從現有列或特征創建的。要在Mito中執行此操作,只需單擊“AddCol”按鈕。該列將添加到當前選定的列表旁邊。最初,列名將是一個字母表,列的所有值都為零。
編輯新列的內容單擊行列名稱(分配的字母表)將彈出側邊欄菜單,你可以在其中編輯列的名稱。要更新該列的內容,請單擊該列的任何單元格,然后輸入值。你可以輸入一個常量值,也可以根據數據集的現有特征創建數據。如果要從現有列創建值,則直接使用要執行的運算符調用列名。新列的數據類型根據分配的值進行更改。下面的GIF演示了上面提到的所有內容:
刪除列通過單擊選擇任何列。單擊“DelCol”,該特定列將從數據集中刪除。Python代碼在下一個單元格中生成帶有正確注釋的Python等效代碼,用于執行的操作是:
#MITOCODESTART(DONOTEDIT)frommitosheetimport*#ImportnecessaryfunctionsfromMitoregister_***ysis('UUID-7bf77d26-84f4-48ed-b389-3f7a3b729753')#LetMitoknowwhich***ysisisbeingrun#ImportededxCourses.csvimportpandasaspdedxCourses_csv=pd.read_csv('edxCourses.csv')#AddedcolumnHtoedxCourses_csvedxCourses_csv.insert(7,'H',0)#RenamedHtonewColinedxCourses_csvedxCourses_csv.rename(columns={"H":"newCol"},inplace=True)#SetnewColinedxCourses_csvto=coursePrice+courseEnrollmentsedxCourses_csv['newCol']=edxCourses_csv['coursePrice']+edxCourses_csv['courseEnrollments']#DeletedcolumnnewColfromedxCourses_csvedxCourses_csv.drop('newCol',axis=1,inplace=True)#MITOCODEEND(DONOTEDIT)創建數據透視表數據透視表是一個重要的環節excel功能,它根據另一個分類特征匯總數字變量。要使用Mito創建這樣的表,
單擊“Pivot”并選擇源數據集(默認加載CSV)選擇數據透視表的行、列和值列。還可以為值列選擇聚合函數。所有下拉選項,如求和、平均值、中值、最小值、最大值、計數和標準偏差都可用。選擇所有必要的字段后,將獲得一個單獨的表,其中包含數據透視表的實現。下面的GIF演示了如何為聚合函數“均值”創建數據透視表:
Python代碼#MITOCODESTART(DONOTEDIT)frommitosheetimport*#ImportnecessaryfunctionsfromMitoregister_***ysis('UUID-a35246c0-e0dc-436b-8667-076d4f08e0c1')#LetMitoknowwhich***ysisisbeingrun#ImportededxCourses.csvimportpandasaspdedxCourses_csv=pd.read_csv('edxCourses.csv')#PivotededxCourses_csvintodf2pivot_table=edxCourses_csv.pivot_table(index=['courseOrganization'],values=['coursePrice'],aggfunc={'coursePrice':'mean'})#Resetthecolumnnameandtheindexesdf2=pivot_table.rename_axis(None,axis=1).reset_index()#MITOCODEEND(DONOTEDIT)合并兩個數據集合并數據集是數據科學項目的重要組成部分。通常,數據集被劃分到不同的表格中,以增加信息的可訪問性和可讀性。合并Mitosheets很容易。
單擊“Merge”并選擇數據源。需要指定要對其進行合并的鍵。也可以從數據源中選擇合并后要保留的列。默認情況下,所有列都將保留在合并的數據集中。Python代碼#MITOCODESTART(DONOTEDIT)frommitosheetimport*#ImportnecessaryfunctionsfromMitoregister_***ysis('UUID-88ac4a92-062f-4ed8-a55d-729394975740')#LetMitoknowwhich***ysisisbeingrun#ImportedAirport-Pets.csv,Zipcode-Data.csvimportpandasaspdAirport_Pets_csv=pd.read_csv('Airport-Pets.csv')Zipcode_Data_csv=pd.read_csv('Zipcode-Data.csv')#MergedAirport_Pets_csvandZipcode_Data_csvtemp_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'])#MITOCODEEND(DONOTEDIT)修改列數據類型、排序和過濾你可以更改現有列的數據類型,按升序或降序對列進行排序,或通過邊界條件過濾它們。在Mito中的這些都很簡單,可以通過選擇屏幕上的選項通過GUI本身完成。
單擊所需的列將看到一個數據類型列表。可以根據需要從下拉列表中選擇任何數據類型,該數據類型將應用于整個列。接下來可以通過選擇提供的選項按升序或降序對數據進行排序。還可以使用自定義過濾器過濾數據。Python代碼#MITOCODESTART(DONOTEDIT)frommitosheetimport*#ImportnecessaryfunctionsfromMitoregister_***ysis('UUID-cc414267-d9aa-4017-8890-ee3b7461c15b')#LetMitoknowwhich***ysisisbeingrun#ImportededxCourses.csvimportpandasaspdedxCourses_csv=pd.read_csv('edxCourses.csv')#ChangedcoursePricefromint64tofloatedxCourses_csv['coursePrice']=edxCourses_csv['coursePrice'].astype('float')#SortedcoursePriceinedxCourses_csvindescendingorderedxCourses_csv=edxCourses_csv.sort_values(by='coursePrice',ascending=False,na_position='first')edxCourses_csv=edxCourses_csv.reset_index(drop=True)#FilteredcoursePriceinedxCourses_csvedxCourses_csv=edxCourses_csv[edxCourses_csv['coursePrice']>=500]edxCourses_csv=edxCourses_csv.reset_index(drop=True)#MITOCODEEND(DONOTEDIT)圖表和統計數據生成還可以直接在此擴展中生成圖形,而無需編寫繪圖邏輯。默認情況下,此擴展生成的所有圖都是使用Plotly***的。這意味著繪圖是交互式的,可以即時修改。
注意,這里并沒有像操作列一樣,在下一個單元格中生成圖形代碼(也許開發人員會在以后的更新中推送此代碼)
可以使用Mito生成兩種類型的圖:
1.通過點擊圖表按鈕你將看到一個側邊欄菜單,用于選擇圖形類型和要選擇的相應軸。
2.通過點擊列名當你點擊電子表格中的列名稱時,可以看見過濾器和排序選項。但如果你導航到“SummaryStats”,則會根據變量的類型顯示線圖或條形圖以及變量的摘要。此摘要更改為文本和沒有文本變量。
保存和回放對數據集所做的所有轉換都可以保存并用于其他類似的數據集。這在Excel中采用宏或VBA的形式。也可以通過這些功能完成相同的操作。
文件是以Python編寫的,而不是用比較難懂的VBA。
回溯執行的所有步驟要想重復上面的步驟的話,也非常容易,Mito自帶“重復已保存分析步驟”功能,一鍵就能用同樣的***分析其他數據。這個功能是最有趣的。你實際上可以追蹤在Mitosheet中應用的所有轉換。所有操作的列表都帶有適當的標題。
此外,你可以查看該特定步驟!這意味著假設你更改了一些列,然后刪除了它們。你可以退回到未刪除的時間。
寫在最后新工具“Mito”,用于在Python環境中實現類似電子表格的功能,并為所做的每一步生成等效操作的Python代碼。
參考來源:數據STUDIO