Python的學習資源分享

Learn Code With Mike品牌創辦人

11/24 22:06

使用Pandas套件將資料集拆分成多個CSV檔案資料應用
本文就以Kaggle網站的「Coursera Course Dataset( https://www.kaggle.com/siddharthm1698/coursera-course-dataset )」資料集為例,基於其中的課程難易度等級欄位(course_difficulty),來分別拆分多個CSV檔案。實作步驟包含:
一、Pandas unique()方法(Method)
由於本文想要基於課程難易度等級欄位(course_difficulty),將不同等級的課程資料分別匯出到多個CSV檔案,這時後就可以利用Pandas套件的unique()方法(Method),來取得課程難易度等級欄位(course_difficulty)的獨立值有哪些,如下範例:
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」的課程資料,如下範例:
df = pd.read_csv('coursea_data.csv')
levels = df['course_difficulty'].unique()
new_df = df[df['course_difficulty'] == 'Advanced']
接下來,要分別選擇課程難易度等級欄位(course_difficulty)的四個等級資料,大家應該猜到該怎麼做了吧?沒錯,就是透過迴圈來分別利用Pandas套件進行選擇,如下範例:
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檔案的動作,本文以課程難易度等級來作為檔案名稱,如下範例:
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檔案中
這時候就可以看到,我們成功從原來的「Coursera Course Dataset(coursea_data.csv)」資料集,基於課程難易度等級欄位(course_difficulty),分別匯出了各個等級的課程資料CSV檔案。
最後,利用Pandas套件讀取拆分後的CSV檔案,來檢視資料內容是否正確,以「coursera_Intermediate.csv」為例,如下:
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')
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2021/10/pandas-split-csv-into-multiple-files.html )網站觀看更多精彩內容。
  • 資料分析
  • Python
  • PYTHON資料分析
  • Pandas
拍手 2 留言 0 觀看 24 收藏 2