前陣子我參加 Leetcode 的活動 - 30 Days of Pandas。這個挑戰對我來說不僅僅是學習的機會,更是一個把常用的 pandas 功能熟悉的練習。之前,在 coding 遇到應用 Pandas 處理資料的的問題時,因為不夠熟悉而需要 Google 搜尋或問 ChatGPT,我意識到儘管我知道 Pandas 有哪些功能,但當我真正需要使用時,我無法下意識去寫,這影響到 coding 的速度和分析處理資料的效率。於是,覺得是時候可以花一些時間,來練習這一塊,所以參加 30 Days of Pandas 。
這個計畫共有 32 題,其中 4 題需要 subscribe Leetcode Premium 才能解鎖,主要包含 Pandas 的各種基本在資料處理上一定會使用到的技巧,而這些題目也都是來自 Leetcode 本身的題庫,題目的難易度多為 Easy 和少量的 Medium,類型則是 Database。
1. Data Filtering:從大型數據集中選擇特定的數據
.loc[]
和 .iloc[]
: 用於基於標籤或位置的數據選擇
2. String Methods:對字符串類型的數據進行操作和處理
.str
accessor: 提供一系列字符串處理方法,如 .lower()
, .upper()
, .contains()
, .replace()
3. Data Manipulation:修改、轉換或重構現有數據
.apply()
: 用於對列或行應用函數.merge()
, .join()
: 數據合併4. Statistics:處理和分析數據以獲取統計信息
.mean()
, .median()
, .std()
, .sum()
.groupby()
進行數據分組並計算統計值5. Data Aggregation:多個項目合併為單一的統計表示
.groupby()
: 用於分組數據.count()
, .sum()
, .agg()
用於匯總統計,有時候會和 statistics 的計算一起用6. Data Integration: 結合來自不同來源的數據
.merge()
和 .concat()
.join()
以下條列經過這三十天最常用的語法:
.drop_duplicates()
.sort_values()
.str.contains()
.iloc[]
.groupby()
,
.transform()
.apply()
.merge()
這些語法是我覺得在處理資料表很常用到的技巧,可以著重熟悉他們,甚至認識語法還可以帶入哪些參數,例如: drop_duplicates
,可以設定 subset
哪些列的重複值,並根據 keep
選擇保留的方式。這些雖然都很基本,卻也是最常使用到的。