Leetcode 30 天 Pandas 挑戰分享

更新於 2024/02/05閱讀時間約 4 分鐘
raw-image

前言

前陣子我參加 Leetcode 的活動 - 30 Days of Pandas。這個挑戰對我來說不僅僅是學習的機會,更是一個把常用的 pandas 功能熟悉的練習。之前,在 coding 遇到應用 Pandas 處理資料的的問題時,因為不夠熟悉而需要 Google 搜尋或問 ChatGPT,我意識到儘管我知道 Pandas 有哪些功能,但當我真正需要使用時,我無法下意識去寫,這影響到 coding 的速度和分析處理資料的效率。於是,覺得是時候可以花一些時間,來練習這一塊,所以參加 30 Days of Pandas

30 Days of Pandas

30 Days of Pandas

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選擇保留的方式。這些雖然都很基本,卻也是最常使用到的。

小心得

  • 30 天挑戰適合新手與想把 pandas 練熟的人:我覺得都沒有學習過 pandas 拿這個來當敲門磚是一個很不錯的起點,那對於每天都在用 padas 的人來說,有時候自己是寫 可行的方法,但可能不是最有效率、或是最簡潔的,就在這刷題的同時,解題後都可以直接參考別人的做法,覺得這樣的學習會更高效。
  • 30 天挑戰中間也是有中斷的日子:在寫這挑戰時,Leetcode 提供一個很方便的功能,可以設定自己的讀書計畫,例如只讀 1-5 、6 日休假,那這樣那天有完成就會獲得一個目標達成的貼紙,看到會更激勵自己。我在這過程中,中間有其他緊急的事情插件,就有中斷一些時間,但我覺得不要緊,最終還是挑戰完,而且是在適合的學習節奏下進行,整體就挺開心的。
avatar-img
33會員
43內容數
歡迎來到《桃花源記》專欄。這裡不僅是一個文字的集合,更是一個探索、夢想和自我發現的空間。在這個專欄中,我們將一同走進那些隱藏在日常生活中的"桃花源"——那些讓我們心動、讓我們反思、讓我們找到內心平靜的時刻和地方
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Karen的沙龍 的其他內容
這篇文章將分享最近遇到 NVIDIA GPU driver 的問題,並提供瞭解決步驟,以及證實問題解決的測試方法。當您遇到類似問題時,可以參考這篇文章進行解決。文章中包含了定位庫文件目錄、備份和替換文件以及測試修改的步驟。
前言 前幾篇分享了 IBM Watsonx.ai 平台,以及在平台上使用 LLM 完成客戶體驗分析、與LLM串連處理較複雜的問題。在這一篇中,我們想來嘗試使用檢索增強生成(RAG)的技術,RAG 通過整合外部數據來增強基礎模型的回答能力,這不僅能解決模型訓練數據的局限性問題,還可以提供更精準和相關
前言 在先前的文章中,我們探討了 IBM Watsonx 在客戶滿意度分析中的應用。今天,我們將利用 Google 的兩款大型語言模型(LLM)— flan-ul2 和 flan-t5-xxl,展示它們如何串聯起來生成關於特定主題的隨機問題和回答。 在這篇文章中,將使用 SimpleSequen
前言 在上一篇文章中,分享了第一次使用 IBM Watsonx 的經歷,以及我對 Prompt lab 功能的初步探索。繼續這個話題,本文將探討 Watsonx 平台對 Python SDK 的支持,以及實作幾個 LLM 的應用,這一特性為開發者提供了極大的便利,使得在此平台上進行開發和應用大型語
前言 在這個迅速變化的技術世界裡,AI 已成為推動創新和效率的主要動力之一,最近很幸運得參加了IBM Watsonx 的 workshop,對我來說是一個很好的機會認識企業對於快速導入AI和整合AI應用的平台。IBM Watson 作為AI領域的先驅之一,長久以來一直在智慧型系統和認知計算方面處於
在數據科學和機器學習中,特徵工程是提高模型性能的關鍵步驟之一,通過創建新特徵或轉換現有特徵,我們可以更好地捕捉數據中的信息,提高模型的預測能力。然而,當處理大數據集時,特徵工程可能變得耗時,而且若是在研發階段,特徵其實是需要快速迭代去產生並且做後續的實驗,這也是近期遇到的問題,因此想在這篇文章實作多
這篇文章將分享最近遇到 NVIDIA GPU driver 的問題,並提供瞭解決步驟,以及證實問題解決的測試方法。當您遇到類似問題時,可以參考這篇文章進行解決。文章中包含了定位庫文件目錄、備份和替換文件以及測試修改的步驟。
前言 前幾篇分享了 IBM Watsonx.ai 平台,以及在平台上使用 LLM 完成客戶體驗分析、與LLM串連處理較複雜的問題。在這一篇中,我們想來嘗試使用檢索增強生成(RAG)的技術,RAG 通過整合外部數據來增強基礎模型的回答能力,這不僅能解決模型訓練數據的局限性問題,還可以提供更精準和相關
前言 在先前的文章中,我們探討了 IBM Watsonx 在客戶滿意度分析中的應用。今天,我們將利用 Google 的兩款大型語言模型(LLM)— flan-ul2 和 flan-t5-xxl,展示它們如何串聯起來生成關於特定主題的隨機問題和回答。 在這篇文章中,將使用 SimpleSequen
前言 在上一篇文章中,分享了第一次使用 IBM Watsonx 的經歷,以及我對 Prompt lab 功能的初步探索。繼續這個話題,本文將探討 Watsonx 平台對 Python SDK 的支持,以及實作幾個 LLM 的應用,這一特性為開發者提供了極大的便利,使得在此平台上進行開發和應用大型語
前言 在這個迅速變化的技術世界裡,AI 已成為推動創新和效率的主要動力之一,最近很幸運得參加了IBM Watsonx 的 workshop,對我來說是一個很好的機會認識企業對於快速導入AI和整合AI應用的平台。IBM Watson 作為AI領域的先驅之一,長久以來一直在智慧型系統和認知計算方面處於
在數據科學和機器學習中,特徵工程是提高模型性能的關鍵步驟之一,通過創建新特徵或轉換現有特徵,我們可以更好地捕捉數據中的信息,提高模型的預測能力。然而,當處理大數據集時,特徵工程可能變得耗時,而且若是在研發階段,特徵其實是需要快速迭代去產生並且做後續的實驗,這也是近期遇到的問題,因此想在這篇文章實作多
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
LeetCode 是一個程式語言版的線上題庫平臺,提供題目描述、程式碼區塊、解題者分享的解法和疑問討論。藉由這篇文章分享我在 LeetCode 上的使用經驗和觀點,包括刷題的重要性、解題心態和練習目標。
Thumbnail
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
最近有新的訂閱者加入, 想趁這個機會再分享一次學習心法與建議給第一次練習的讀者、同學們。 如果你本身已經很熟練演算法,那隨機挑題目練習ok,可以測試觀念是否正確,並且驗證寫code的效率與正確程度。 如果是剛畢業或還在學,以前沒有打過程式競賽。 想開始有系統地增強演算法&資料結構的能力
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們列出所有體重>100公斤的動物的名字,並且必須依照體重weight作降序排列。 題目的原文敘述 測試範例 Example 1: Input: DataFrame animals: +----------+-
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表為基礎,融合不同的資料欄位。 以product作為index,融合quarter_1,quarter_2,quarter_3,quarter_4 這四個欄位,並且重新命名為quarter,並且將數值欄位名稱重
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們回傳student_id為101的這筆資料,並且列出它的"name"和"age"欄位。 題目的原文敘述 測試範例 Example 1: Input: +------------+---------+-----+ |
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們回傳資料表的前3個Row。 題目的原文敘述 測試範例 Example 1: Input: DataFrame employees +-------------+-----------+-------------
Thumbnail
題目敘述 題目會給定一個python list形式的輸入,要求我們把它轉換成pandas dataframe的形式做輸出。並且指定column名稱分別為student_id, 和 age 題目的原文敘述 測試範例
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
LeetCode 是一個程式語言版的線上題庫平臺,提供題目描述、程式碼區塊、解題者分享的解法和疑問討論。藉由這篇文章分享我在 LeetCode 上的使用經驗和觀點,包括刷題的重要性、解題心態和練習目標。
Thumbnail
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
最近有新的訂閱者加入, 想趁這個機會再分享一次學習心法與建議給第一次練習的讀者、同學們。 如果你本身已經很熟練演算法,那隨機挑題目練習ok,可以測試觀念是否正確,並且驗證寫code的效率與正確程度。 如果是剛畢業或還在學,以前沒有打過程式競賽。 想開始有系統地增強演算法&資料結構的能力
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們列出所有體重>100公斤的動物的名字,並且必須依照體重weight作降序排列。 題目的原文敘述 測試範例 Example 1: Input: DataFrame animals: +----------+-
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們以原有的資料表為基礎,融合不同的資料欄位。 以product作為index,融合quarter_1,quarter_2,quarter_3,quarter_4 這四個欄位,並且重新命名為quarter,並且將數值欄位名稱重
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們回傳student_id為101的這筆資料,並且列出它的"name"和"age"欄位。 題目的原文敘述 測試範例 Example 1: Input: +------------+---------+-----+ |
Thumbnail
題目敘述 題目會給定一個pandas DataFrame作為輸入,要求我們回傳資料表的前3個Row。 題目的原文敘述 測試範例 Example 1: Input: DataFrame employees +-------------+-----------+-------------
Thumbnail
題目敘述 題目會給定一個python list形式的輸入,要求我們把它轉換成pandas dataframe的形式做輸出。並且指定column名稱分別為student_id, 和 age 題目的原文敘述 測試範例