【機器學習學習筆記】pandas基礎

零基礎入門 Pandas:數據處理的 "萬能工具"

如果你是剛接觸數據分析的小白,一定聽過 "Pandas" 這個名字。簡單說,Pandas 是 Python 中專門用來處理數據的工具庫,就像 Excel 的 "高級版"—— 能更快、更靈活地處理成千上萬行數據,是數據分析入門的必備技能。下面用最通俗的語言,帶你一步步認識 Pandas 的核心用法。

一、先搞懂:Pandas 最核心的 2 種數據結構

Pandas 之所以好用,是因為它有 2 種專門為數據設計的 "容器",所有數據處理都圍繞這兩種容器展開。

1. Series:像 "帶標簽的列表"(一維數據)

可以理解為只有 1 列的表格,比如 "班級學生的數學成績":

  • 左邊是 "標簽"(索引,比如學生姓名 / 學號)
  • 右邊是 "數據"(比如成績)
舉個例子(代碼可直接復制運行):
import pandas as pd  # 先"召喚"Pandas工具# 用字典創建Series(鍵=標簽,值=數據)
成績 = pd.Series({'小明': 90, '小紅': 85, '小剛': 95})
print(成績)

運行后會看到:

小明    90
小紅    85
小剛    95
dtype: int64  # 數據類型是整數

2. DataFrame:像 "Excel 表格"(二維數據)

這是 Pandas 最常用的結構,有行標簽(索引)、列標簽(列名)和數據,比如 "班級學生的各科成績":

舉個例子:
# 用"字典套列表"創建DataFrame(鍵=列名,值=該列數據)
各科成績 = pd.DataFrame({'數學': [90, 85, 95],'語文': [88, 92, 89],'英語': [92, 88, 94]
}, index=['小明', '小紅', '小剛'])  # 指定行標簽
print(各科成績)

運行后會看到熟悉的表格:

      數學  語文  英語
小明   90  88  92
小紅   85  92  88
小剛   95  89  94

📌 關鍵區別:Series 只有 1 列,沒有 "列名";DataFrame 有多列,必須有 "列名",就像 Excel 的表頭。

二、第一步:讀取外部數據(比如 CSV/Excel)

實際分析中,數據很少是自己手寫的,大多來自外部文件(比如 CSV、Excel)。Pandas 一句話就能讀取:

1. 讀取 CSV 文件(最常用)

CSV 是純文本表格,比 Excel 體積小,適合大數據。

# 讀取本地CSV(路徑寫文件在你電腦里的位置,比如"桌面/數據.csv")
df = pd.read_csv("本地文件路徑.csv")# 也能直接讀取網上的CSV(比如下面這個是洛杉磯人口數據)
df = pd.read_csv("https://labfile.oss.aliyuncs.com/courses/906/los_census.csv")

2. 讀取后先 "預覽" 數據

如果數據有幾萬行,直接打印會卡死,用這兩個方法看前幾行 / 后幾行:

df.head()  # 默認看前5行(括號里寫數字可改,比如head(10)看前10行)
df.tail()  # 默認看后5行(同理tail(7)看后7行)

3. 快速了解數據 "概況"

describe()能一鍵看到數據的統計信息(比如最大值、最小值、平均值),幫你快速把握數據特征:

df.describe()  # 只對數字類型的列有效

三、核心操作 1:選擇你需要的數據(數據索引)

拿到表格后,經常需要 "只看某幾行 / 某幾列",Pandas 有兩種最常用的選擇方式:

方式 1:按 "數字位置" 選(iloc)

就像 Excel 里的 "第 1 行、第 2 列",不管行標簽 / 列名是什么,只看位置(從 0 開始數!)。

語法:df.iloc[行位置, 列位置](逗號前是行,逗號后是列)

舉個例子(用前面的 "各科成績" 表格):
行位置行標簽數學(列 0)語文(列 1)英語(列 2)
0小明908892
1小紅859288
2小剛958994
# 1. 選前2行(行位置0和1)
各科成績.iloc[:2]  # 冒號表示"到...為止",[:2] = 從0到1(不包含2)# 2. 選第1行(位置0)、第2列(位置1,語文)
各科成績.iloc[0, 1]  # 結果:88(小明的語文成績)# 3. 選第0、2行(小明、小剛),第0、2列(數學、英語)
各科成績.iloc[[0,2], [0,2]]

方式 2:按 "標簽名稱" 選(loc)

直接用 "行標簽(比如小明)" 或 "列名(比如數學)" 選,更直觀,不用記位置。

語法:df.loc[行標簽, 列名]

舉個例子:
# 1. 選"小明"這一行
各科成績.loc['小明']# 2. 選"數學"這一列
各科成績.loc[:, '數學']  # 逗號前寫":"表示"所有行"# 3. 選"小明、小剛"的"語文、英語"成績
各科成績.loc[['小明','小剛'], ['語文','英語']]

📌 小白記住:分不清就優先用loc(按名稱選),不容易出錯;需要按 "第 N 行第 N 列" 就用iloc

四、核心操作 2:刪除不需要的數據

拿到數據后,經常要刪冗余的行 / 列、重復數據或空白數據。

1. 刪除指定行 / 列(drop)

比如表格里有 "學號" 列用不上,直接刪掉:

# 刪除"學號"列(axis=1表示刪列,axis=0表示刪行)
df.drop(labels='學號', axis=1)# 刪除第0行(行標簽為0)
df.drop(labels=0, axis=0)

2. 刪除重復數據(drop_duplicates)

比如表格里有完全一樣的兩行(重復錄入),一鍵去重:

df.drop_duplicates()  # 默認刪除所有列都重復的行

3. 刪除空白數據(dropna)

數據里經常有 "空白格"(Pandas 里叫 NaN),比如某個人的英語成績沒填,直接刪掉這一行:

df.dropna()  # 默認刪除包含任何空白的行

五、核心操作 3:填充空白數據(fillna)

如果空白數據不多,直接刪除太可惜,就用合理的數值填充(比如用平均值)。

1. 用固定值填充(比如 0)

# 所有空白都填0
df.fillna(0)

2. 用前后值填充

比如某個人的英語成績空白,用他前一個人的成績填(或后一個人):

df.fillna(method='pad')  # pad=用前面的值填充(向前填充)
df.fillna(method='bfill')  # bfill=用后面的值填充(向后填充)

3. 用平均值填充(最常用)

比如數學成績有空白,用全班數學的平均值填,更合理:

# 用"數學"列的平均值,填充該列的空白
df['數學'].fillna(df['數學'].mean())

4. 插值填充(更智能)

如果數據有趨勢(比如溫度隨時間上升),用 "插值" 能更貼合數據規律。比如:

# 生成一個有空白的溫度數據
溫度數據 = pd.DataFrame({'溫度': [20, np.nan, 25, np.nan, 30]})# 線性插值(按中間值填,比如20和25之間的空白填22.5)
溫度數據.interpolate()

運行后空白會被智能填充:

    溫度
0  20.0
1  22.5  # 插值結果
2  25.0
3  27.5  # 插值結果
4  30.0

六、快速繪圖:讓數據變直觀

Pandas 能直接調用繪圖工具,一句話畫出折線圖、柱狀圖等,不用學復雜的繪圖庫。

比如用前面的 "各科成績" 畫柱狀圖:

# 畫柱狀圖(kind='bar'表示柱狀圖,默認是折線圖)
各科成績.plot(kind='bar')

運行后會自動彈出圖表,能清晰看到每個人各科成績的對比。

七、小白入門總結

  1. 核心結構:先記住 Series(1 列)和 DataFrame(表格),90% 的操作都用這兩個。
  2. 數據讀取:用pd.read_csv()讀文件,head()預覽,describe()看概況。
  3. 數據選擇:按名稱用loc(簡單),按位置用iloc(靈活)。
  4. 數據清理:刪數據用drop/drop_duplicates/dropna,填數據用fillna/interpolate
  5. 快速繪圖:用df.plot(kind='xxx')看數據趨勢。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/95345.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/95345.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/95345.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

(Mysql)MVCC、Redo Log 與 Undo Log

1. MVCC(多版本并發控制)概念 MVCC(Multi-Version Concurrency Control)是一種數據庫并發控制機制,用于解決 讀寫沖突,提高數據庫并發性能。MySQL InnoDB 存儲引擎使用 MVCC 來實現 非阻塞讀(即…

OpenCV-Python Tutorial : A Candy from Official Main Page(五)

4.5FAST Algorithm for Corner Detection 4.5.1FAST算法 我們已了解多種特征檢測器,其中許多效果出色。但從實時應用的角度來看,它們的速度仍不夠快。一個典型例子是計算資源有限的SLAM(同步定位與建圖)移動機器人。 為解決此問…

LINUX 91 SHELL:刪除空文件夾 計數

問題 [rootweb ~]# find -type f -exec echo "file:{}" $path; find: 遺漏“-exec”的參數 您在 /var/spool/mail/root 中有郵件[rootweb ~]# $path/root -bash: /root: 沒有那個文件或目錄 您在 /var/spool/mail/root 中有新郵件 [rootweb ~]# path/root [rootweb ~…

視頻軟解碼技術詳解:原理、應用與未來發展

視頻軟解碼的基本原理 概念解析:CPU主導的通用解碼方式 視頻軟解碼是一種完全依賴通用CPU執行解碼算法的視頻還原技術,其核心特征在于不依賴任何專用硬件模塊,而是通過軟件程序調用CPU的通用計算能力完成壓縮視頻數據的解碼過程[1][2]。與硬…

線性回歸中梯度下降與正規方程以及擬合問題與正則化

線性回歸實戰指南:從理論到實踐 目錄 線性回歸理論基礎機器學習項目開發流程波士頓房價預測實戰梯度下降與正規方程模型評估指標擬合問題與正則化總結與展望 1. 線性回歸理論基礎 1.1 什么是線性回歸? 線性回歸是一種監督學習算法,用于預…

為什么46.1k程序員都在用這個AI繪畫神器?我體驗一周后終于明白了

大家好,我是顧北,一名AI應用探索者,也是GitHub開源項目收集者。說起AI繪畫這事兒,我之前真的是又愛又恨。上個月想給朋友搞張生日賀圖,結果在Stable Diffusion WebUI里折騰了大半天。采樣步數?CFG比例&…

Java基礎第8天總結(map遍歷、Stream流)

選中一部分代碼,然后CTRLALTT,可以在外面套上while循環,try..catch之類的小案例:電影信息管理模塊:用戶可以上架、查詢、下架、下架某個主演參演的電影package Demo;import lombok.AllArgsConstructor; import lombok.Data; impor…

總線矩陣的原理

總線矩陣(Bus Matrix)是多主設備共享多從設備的智能連接與仲裁核心,本質是一個“靈活的交叉開關陣列”,用于解決多個主設備(如CPU、DMA、GPU)同時訪問多個從設備(如內存、外設、存儲芯片&#x…

硬件開發_基于Zigee組網的果園養殖監控系統

一.系統概述 果園環境監控系統功能如下: 核心控制器:以STM32為核心控制器,承擔整體的數據采集、處理及控制任務。環境參數監測:集成溫度傳感器、CO?傳感器、光照傳感器和土壤濕度傳感器,可實時采集果園內的溫度、二氧…

K8s調度核心:從Pod分配到節點優化

在 Kubernetes(K8s)中,Pod 調度是指 K8s 系統根據特定規則和策略,將 Pod 合理分配到集群中的某個節點(Node)上運行的過程。其核心目標是確保 Pod 在合適的節點上高效、穩定地運行,充分利用集群資…

Tomcat 企業級運維實戰系列(四):Tomcat 企業級監控

Tomcat 企業級運維實戰系列(四):Tomcat 企業級監控一:監控工具1)概述2)流程3)部署二:監控命令1)jps2)jstack3)jmap4)MAT 工具分析三&a…

技術干貨丨HyperMesh 新界面功能與技術升級解析

全文內容選自 Altair 區域技術交流會華東站Altair 高級技術經理 張晨《HyperWorks 2025:下一代建模可視化和二次開發平臺》演講1、引言今天我為大家介紹 HyperMesh——這個大家既熟悉又陌生的工具。說熟悉,是因為它一直是工程仿真領域的主流建模軟件&…

《IC驗證必看|隨機穩定性 / 再現性》

同一用例 A 機 pass、B 機 fail?——SystemVerilog 隨機穩定性 / 可復現性全攻略(含代碼與排查清單)你該到什么水平?(對標 20k / 25k / 30k) 20k(入門會用) 會 randomize()、$urando…

字符編碼的本質

目的 最近做一個加密方面的研究,加密之后的二進制,通過轉碼之后,再也找不回之前的二進制了。 怎么試都不行,真是非常得奇怪!!!!先說說字符編碼基礎知識 在信息技術的海洋中&#xff…

網格圖--Day03--網格圖DFS--2658. 網格圖中魚的最大數目,1034. 邊界著色,1020. 飛地的數量

網格圖–Day03–網格圖DFS–2658. 網格圖中魚的最大數目,1034. 邊界著色,1020. 飛地的數量 今天要訓練的題目類型是:【網格圖DFS】,題單來自靈艾山茶府。 適用于需要計算連通塊個數、大小的題目。 部分題目做法不止一種&#xff0…

新能源車焊接中發那科機器人保護氣省氣方法

在新能源汽車制造領域,焊接工藝是保障車身結構強度與安全性的關鍵環節,發那科焊接機器人憑借高精度與穩定性成為產線主力設備。保護氣體消耗在焊接成本中占比顯著,尋找高效省氣方法成為行業降本增效的核心需求。WGFACS節氣裝置以智能化控制技…

CornerNet2025再研究---將目標檢測問題視作關鍵點檢測與配對

CornerNet于2019年3月份提出,CW近期回顧了下這個在當時引起不少關注的目標檢測模型,它的亮點在于提出了一套新的方法論——將目標檢測轉化為對物體成對關鍵點(角點)的檢測。通過將目標物體視作成對的關鍵點,其不需要在圖像上鋪設先驗錨框(anc…

【C++】vector(2)

目錄 1. insert的實現 2. 迭代器失效 2.1 迭代器失效的兩種情況 指向已釋放的內存(物理失效) 元素移動導致迭代器指向錯誤(邏輯失效) 2.2 修改代碼 3. erase的實現 ?編輯修改代碼 4. resize的實現 5. 構造函數 5.1 默認…

機器翻譯:python庫translatepy的詳細使用(集成了多種翻譯服務)

更多內容請見: 機器翻譯修煉-專欄介紹和目錄 文章目錄 一、translatepy概述 1.1 translatepy介紹 1.1 安裝 二、基本使用 2.1 初始化 `Translator` 2.2 文本翻譯 2.3 語言檢測 2.4 獲取翻譯備選方案 2.5 單詞音標獲取 2.6 語音合成 2.7 例句查詢 2.8 拼寫檢查 三、高級功能 3.…

Spring Bean生命周期的完全指南

簡介:超越Bean——揭開Spring Bean的隱秘生活 想象一場復雜宏大的舞臺劇。作為觀眾,我們看到的是最終的演出——一個流暢運行的應用程序。但在這光鮮的幕后,隱藏著一套嚴謹細致的流程:選角(實例化Bean)、試…