當單一資料集過於龐大,想要拆分為不同的檔案,或在實作機器學習時,需要將資料集分為測試及訓練資料等,這時候就有機會把單一CSV檔案中的資料,依據特定條件拆分成多個CSV檔案。
而使用Pandas套件來進行資料分析,就能夠很輕鬆的解決以上任務,本文就以Kaggle網站的「Coursera Course Dataset(coursea_data.csv)」資料集為例,基於其中的課程難易度等級欄位(course_difficulty),來分別拆分多個CSV檔案,實作步驟包含:
- Pandas unique()方法(Method)
- Pandas基於欄位值拆分資料集
- Pandas基於欄位值匯出多個CSV檔案
一、Pandas unique()方法(Method)
首先,利用以下指令安裝Pandas套件:
$ pip install pandas
接著讀取「Coursera Course Dataset(coursea_data.csv)」資料集,如下範例:
import pandas as pd df = pd.read_csv('coursea_data.csv') print(df)
截取部分執行結果
import pandas as pd df = pd.read_csv('coursea_data.csv') levels = df['course_difficulty'].unique() print(levels)
執行結果:
array(['Beginner', 'Intermediate', 'Mixed', 'Advanced'], dtype=object)
從以上結果就可以知道課程難易度等級欄位(course_difficulty)共有四個等級的資料。
二、Pandas基於欄位值拆分資料集
而要使用Pandas套件依據條件選擇資料,像是選擇課程難易度等級欄位(course_difficulty)為「Advanced」的課程資料,如下範例:
import pandas as pd df = pd.read_csv('coursea_data.csv') levels = df['course_difficulty'].unique() new_df = df[df['course_difficulty'] == 'Advanced'] print(new_df)
截取部分執行結果
import pandas as pd df = pd.read_csv('coursea_data.csv') levels = df['course_difficulty'].unique() for level in levels: new_df = df[df['course_difficulty'] == level]
三、Pandas基於欄位值匯出多個CSV檔案
在執行迴圈的過程中,Pandas套件選擇了課程難易度等級的資料後,就可以進行匯出CSV檔案的動作,本文以課程難易度等級來作為檔案名稱,如下範例:
import pandas as pd df = pd.read_csv('coursea_data.csv') levels = df['course_difficulty'].unique() for level in levels: new_df = df[df['course_difficulty'] == level] new_df.to_csv(f'coursera_{level}.csv', index=False) #索引值不匯出到CSV檔案中
執行結果
最後,利用Pandas套件讀取拆分後的CSV檔案,來檢視資料內容是否正確,以「coursera_Intermediate.csv」為例,如下:
import pandas as pd df = pd.read_csv('coursea_data.csv') levels = df['course_difficulty'].unique() for level in levels: new_df = df[df['course_difficulty'] == level] new_df.to_csv(f'coursera_{level}.csv', index=False) #索引值不匯出到CSV檔案中 mediate_df = pd.read_csv('coursera_Intermediate.csv') print(mediate_df)
截取部分執行結果
四、小結
本文以Kaggle網站的「Coursera Course Dataset(coursea_data.csv)」資料集為例,使用Pandas套件依據其中的欄位值,將不同等級的課程資料拆分到多個CSV檔案中,其中的實作步驟,先利用Pandas套件的unique()方法(Method),取得欄位的唯一值,再透過迴圈選擇所需的資料集,並且匯出至CSV檔案中。
希望經過本文的教學,有幫助到大家在實務上處理大型的CSV檔案資料時,能夠有效透過拆分的方式,來區分與整理資料。
如果喜歡我的文章,別忘了在下面訂閱本網站,以及幫我按五下Like(使用Google或Facebook帳號免費註冊),支持我創作教學文章,回饋由LikeCoin基金會出資,完全不會花到錢,感謝大家。
- [Pandas教學]3個Pandas套件比較CSV檔案資料之間的差異秘訣
- [Pandas教學]利用Pandas套件的to_html方法在網頁快速顯示資料分析結果
- [Pandas教學]4個必學的Pandas套件處理遺漏值(Missing Value)資料方法
- [Pandas教學]有效利用Pandas套件的pipe方法打造資料處理流程管道
- [Pandas教學]3個優化Pandas套件讀取大型CSV檔案資料的技巧
- [Pandas教學]一定要學會的Pandas套件讀寫Google Sheets試算表資料秘訣
- [Pandas教學]客製化Pandas DataFrame樣式提升資料可讀性的實用方法
- [Pandas教學]3個Pandas套件合併多個CSV檔案資料的實用技巧
- Pandas教學]看完這篇就懂Pandas套件如何即時讀取API的回應資料
- [Pandas教學]快速掌握Pandas套件讀寫SQLite資料庫的重要方法
- [Pandas教學]輕鬆入門3個常見的Pandas套件排序資料方式
- [Pandas教學]有效利用Pandas套件篩選資料的應用技巧
- [Pandas教學]善用Pandas套件的Groupby與Aggregate方法提升資料解讀效率
- [Pandas教學]使用Pandas套件實作資料清理的必備觀念(上)
- [Pandas教學]使用Pandas套件實作資料清理的必備觀念(下)
- Visual Studio Code漂亮印出Pandas DataFrame資料的實用方法
- [Pandas教學]資料視覺化必懂的Pandas套件繪製Matplotlib分析圖表實戰
- [Pandas教學]5個實用的Pandas讀取Excel檔案資料技巧
- 解析Python網頁爬蟲如何有效整合Pandas套件提升資料處理效率
- [Pandas教學]掌握Pandas DataFrame讀取網頁表格的實作技巧
- [Pandas教學]資料分析必懂的Pandas DataFrame處理雙維度資料方法
- [Pandas教學]資料分析必懂的Pandas Series處理單維度資料方法
留言
張貼留言