數據專家最常使用的 10 大類 Pandas 函數 ⛵
highlight: a11y-dark
攜手創作,共同成長!這是我參與「掘金日新計劃 · 8 月更文挑戰」的第17天,點擊查看活動詳情
- 💡 作者:韓信子@ShowMeAI
- 📘 數據分析實戰系列:https://www.showmeai.tech/tutorials/40
- 📘 本文地址:https://www.showmeai.tech/article-detail/304
- 📢 聲明:版權所有,轉載請聯繫平台與作者並註明出處
- 📢 收藏ShowMeAI查看更多精彩內容
Python具有極其活躍的社區和覆蓋全領域的第三方庫工具庫,近年來一直位居編程語言熱度頭部位置,而數據科學領域最受歡迎的python工具庫之一是 Pandas。隨着這麼多年來的社區高速發展和海量的開源貢獻者,使得 pandas 幾乎可以勝任任何數據處理工作。
Pandas的功能與函數極其豐富,要完全記住和掌握是不現實的(也沒有必要),資深數據分析師和數據科學家最常使用的大概有二三十個函數。在本篇內容中,ShowMeAI 把這些功能函數總結為10類。熟練掌握它們,你就可以輕鬆解決80% 以上的數據處理問題。
也推薦大家閲讀ShowMeAI針對數據分析編寫的教程和速查表,快速成為數據洞察高手! - 圖解數據分析:從入門到精通系列教程 - 數據科學工具庫速查表 | Pandas 速查表
💡 1.讀取數據
我們經常要從外部源讀取數據,基於不同的源數據格式,我們可以使用對應的 read_*
功能:
read_csv
:我們讀取CSV格式數據時使用它。這個函數的使用注意點包括header
(是否有表頭以及哪一行是表頭),sep
(分隔符),和usecols
(要使用的列/字段的子集)。read_excel
:讀取Excel格式文件時使用它。這個函數的使用注意點包括sheet_name
(哪個表)和標題。read_pickle
:讀取pickle格式存儲的文件時使用,這個格式的優勢是比 CSV 和 Excel快很多。read_sas
: 我經常使用這個功能,因為我曾經使用 SAS 來處理數據。
💡 2.寫入數據
處理完數據後,我們可能會把處理後的DataFrame保存下來,最常用的文件寫入函數如下:
to_csv
: 寫入 CSV 文件。 注意:它不保留某些數據類型(例如日期)。 很多情況下我們會將參數索引設置為False
,這樣就不用額外的列來顯示數據文件中的索引。to_excel
: 寫入 Excel 文件。to_pickle
:寫入pickle文件。這是建議的寫入格式,讀寫的速度都非常快。
💡 3.數據概覽
將數據成 DataFrame 格式後,我們最好對數據有一個初步的瞭解,以下是最常用到的幾個數據概覽函數,能提供數據的基本信息。
head
:返回前幾行,通常用於檢查數據是否正確讀取,以及瞭解數據字段和形態等基本信息。tail
:檢查最後幾行。在處理大文件時,讀取可能不完整,可以通過它檢查是否完整讀取數據。info
:數據集的總體摘要:包括列的數據類型和內存使用情況等信息。describe
:提供數據集的描述性摘要(比如連續值的統計信息、類別型字段的頻次信息等)。shape
: 行數和列數(注意,這是Dataframe的屬性,而非函數)。
💡 4.數據排序
我們經常需要對數據進行排序,Dataframe有一個重要的排序函數。
sort_values
:通過指定列名對數據進行排序,可以調整升序或者降序規則。
💡 5.處理重複
我們手上的數據集很可能存在重複記錄,某些數據意外兩次輸入到數據源中,清洗數據時刪除重複項很重要。 以下函數很常用:
duplicated
: 識別DataFrame中是否有重複,可以指定使用哪些列來標識重複項。drop_duplicates
:從 DataFrame 中刪除重複項。一般建議大家先使用duplicated
檢查重複項,確定業務上需要刪除重複項,再使用這個函數。
💡 6.處理缺失值
現實數據集中基本都會存在缺失值的情況,下面這些函數常被用作檢查和處理缺失值。
isnull
:檢查您的 DataFrame 是否缺失。dropna
: 對數據做刪除處理。注意它有很重要的參數how
(如何確定觀察是否被丟棄)和thred
(int類型,保留缺失值的數量)。fillna
: 用指定的方法填充缺失值,例如向前填充 (ffill
)。
💡 7.數據處理
一個字段可能包含很多信息,我們可以使用以下函數對字段進行數據處理和信息抽取:
map
:通常使用map對字段進行映射操作(基於一些操作函數),如df[“sub_id”] = df[“temp_id”].map(lambda x: int(x[-4:]))
.apply
:通過多列的數據創建新的字段,在創建新列時經常需要指定axis=1
。
💡 8.數據透視
Dataframe有 2 種常見數據:
- 『寬』格式,指的是每一行代表一條記錄(樣本),每一列是一個觀測維度(特徵)。
- 『長』格式,在這種格式中,一個主題有多行,每一行可以代表某個時間點的度量。
我們會在這兩種格式之間轉換。
melt
:將寬錶轉換為長表。 注意:重要參數id_vars
(對於標識符)和value_vars
(其值對值列有貢獻的列的列表)。pivot
:將長錶轉換為寬表。注意:重要參數index
(唯一標識符),columns
(列成為值列),和values
(具有值的列)。
💡 9.合併數據集
我們對多個數據集Dataframe合併的時候,可能用到下列的函數(包括表關聯和拼接)。
merge
:基於某些字段進行表關聯。重要的參數包括on
(連接字段),how
(例如內連接或左連接,或外連接),以及suffixes
(相同字段合併後的後綴)。concat
:沿行或列拼接DataFrame對象。當我們有多個相同形狀/存儲相同信息的 DataFrame 對象時,它很有用。
💡 10.分組統計
我們經常會需要對數據集進行分組統計操作,常用的函數包括:
groupby
:創建一個 GroupBy 分組對象,可以基於一列或多列進行分組。mean
:您可以在 GroupBy 分組對象上調用 mean 來計算均值。其他的常用統計信息包括標準差std
。size
: 分組的頻率agg
:聚合函數。包括常用的統計方法,也可以自己定義。
參考資料
- 圖解數據分析:從入門到精通系列教程:https://www.showmeai.tech/tutorials/33
- 數據科學工具庫速查表 | Pandas 速查表:https://www.showmeai.tech/article-detail/101
- 感謝飛書放過幕布!100個GPT-4實戰案例;GPT-4免費平替Poe;AI繪畫新手指南之SD篇;new Bing靠譜教程 | ShowMeAI日報
- whylogs工具庫的工業實踐!機器學習模型流程與效果監控 ⛵
- 脈脈瘋傳!2023年程序員生存指南;多款prompt效率加倍工具;提示工程師最全祕籍;AI裁員正在發生 | ShowMeAI日報
- 中國風?古典系?AI中文繪圖創作嚐鮮!⛵
- Python中內置數據庫!SQLite使用指南!
- Pandas中你一定要掌握的時間序列相關高級功能
- 數據科學家賺多少?數據全分析與可視化 ⛵
- 交互式儀表板!Python輕鬆完成!⛵
- ChatGPT!我是你的破壁人;比爾·蓋茨不看好Web3與元宇宙;FIFA押中4屆世界盃冠軍;GitHub今日熱榜 | ShowMeAI資訊日報
- ChatGPT要收費了;華爾街大裁員;阿里2023十大科技趨勢;小紅書元宇宙虛擬服飾被吐槽;GitHub今日熱榜 | ShowMeAI資訊日報
- AI創業時代!這9個方向有錢途;AIGC再添霸榜應用Lensa;美團SemEval2022冠軍方法分享;醫學圖像處理工具箱… | ShowMeAI資訊日報
- 噓!P站數據分析年報;各省市疫情感染進度條;愛奇藝推出元宇宙App;You推出AI聊天機器人;GitHub今日熱榜 | ShowMeAI資訊日報
- 美國公司裁員潮時間線◉科技寒冬可視化;3份報告回顧中國開發者2022;自動駕駛下半場,誰會衝出重圍 | ShowMeAI每週通訊 #005-01.07
- 副業月入過萬?數據有話説;掃地機器人發展到哪步了;疫情後要不要重返辦公室;淘寶元宇宙直播間;GitHub今日熱榜 | ShowMeAI資訊日報
- 大戰谷歌!微軟Bing引入ChatGPT;羊了個羊40萬年薪招研發;Debian徹底移除Python2;GitHub今日熱榜 | ShowMeAI資訊日報
- 酸了!樂視工作制改為四天半;高通新年裁員;AI繪畫公司開始倒閉;網易入股張藝謀元宇宙公司;GitHub今日熱榜 | ShowMeAI資訊日報
- 要麼幹要麼滾!推特開始裁員了;深度學習產品應用·隨書代碼;可分離各種樂器音源的工具包;Transformer教程;前沿論文 | ShowMeAI資訊日報
- 真實世界的人工智能應用落地——OpenAI篇 ⛵
- 陽過→陽康,數據裏的時代側影;谷歌慌了!看各公司如何應對ChatGPT;兩份優質AI年報;本週技術高光時刻 | ShowMeAI每週通訊 #003-12.24
- 用魔法打敗魔法!這件毛衣讓攝像頭看不到你;兩款酷炫的AI寫作軟件;快如閃電的B站下載工具;基於擴散模型的蛋白質設計 | ShowMeAI資訊日報