【AI深度學習基礎】Pandas完全指南入門篇:數據處理的瑞士軍刀 (含完整代碼)

📚 Pandas 系列文章導航

  • 入門篇 🌱
  • 進階篇 🚀
  • 終極篇 🌌

📌 一、引言

在大數據與 AI 驅動的時代,數據預處理和分析是深度學習與機器學習的基石。Pandas 作為 Python 生態中最強大的數據處理庫,以其靈活的數據結構(如 DataFrame 和 Series)和豐富的功能(數據清洗、轉換、聚合等),成為數據科學家和工程師的核心工具。

Pandas 以 Series(一維標簽數組)和 DataFrame(二維表格)為核心數據結構,提供高效的數據處理能力,涵蓋數據清洗(缺失值處理、去重)、篩選(loc/iloc)、聚合(groupby)、合并(merge/concat)及時間序列分析(日期解析、重采樣)等關鍵功能。其優勢在于:

  • 矢量化運算:避免循環,提升性能。
  • 內存優化category 類型減少內存占用。
  • 無縫集成生態:與 NumPy、Matplotlib 等庫無縫集成。

Pandas數據處理全流程:

數據加載
CSV/Excel/SQL
數據清洗
去重/填充/異常值
數據轉換
類型轉換/特征工程
數據聚合
Groupby/Agg
數據合并
Concat/Merge
數據分析
統計/可視化
結果輸出
CSV/圖表/報告

入門需掌握基礎 API(如 read_csvdescribe),并通過實戰(如電商分析、時序預測)深化理解。官方文檔與《Python for Data Analysis》是經典學習資源,適合快速處理結構化數據并賦能 AI 工程。


🛠? 二、安裝指南

1. 前置條件

  • Python 版本要求:Pandas 建議 Python 3.8 及以上版本。
  • 推薦環境:使用虛擬環境(如 venvconda)隔離項目依賴。

2. 安裝方法

2.1 使用 pip 安裝(通用方式)
# 基礎安裝(僅 Pandas)
pip install pandas# 國內鏡像加速(解決下載慢問題)
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
2.2 使用 Anaconda 安裝(推薦數據科學用戶)
# 通過 conda 安裝(自動處理依賴)
conda install pandas# 或指定版本
conda install pandas=2.2.0
2.3 源碼安裝(高級用戶)
git clone https://github.com/pandas-dev/pandas.git
cd pandas
python setup.py install

3. 驗證安裝

import pandas as pd
print(pd.__version__)  # 輸出版本號(如 2.2.0)

4. 常見問題解決

  • 依賴沖突:使用 pip install --upgrade pandas 升級至最新版本。
  • 權限問題:在命令前添加 sudo(Linux/macOS)或以管理員身份運行終端(Windows)。
  • 缺少依賴庫:安裝完整數據科學生態(推薦):
    pip install pandas numpy matplotlib scikit-learn
    

5. 環境配置建議

  • IDE 支持:在 Pycharm 或 VS Code 中運行代碼更高效。
  • 文檔速查:本地查看文檔(終端輸入 python -m pandas 或訪問 官網文檔)。

📊 三、知識詳解

1. 核心數據結構

1.1 Series
  • 一維帶標簽數組,支持任意數據類型,索引機制允許快速定位數據(如 pd.Series([10,20], index=['a','b']))。
  • 常用于存儲時間序列、數值序列或分類數據。
1.2 DataFrame
  • 二維表格型結構,由多個 Series 組成,支持異構數據類型(如數字、字符串、日期并存)。
  • 提供類似 SQL 的操作接口(篩選、合并、分組聚合),適合處理 Excel 表格或數據庫查詢結果。
核心數據結構關系
多個組合
列操作
行操作
索引對齊
可視化
機器學習
Series
DataFrame
Series
Series
NumPy數組
Matplotlib
Scikit-learn

2. 核心功能與優勢

2.1 數據處理能力
  • 數據清洗:通過 dropna() 刪除缺失值、fillna() 填充、drop_duplicates() 去重,快速修復臟數據。
  • 數據操作
    • 篩選:loc(標簽索引)、iloc(位置索引)、query()(SQL 式條件過濾)。
    • 合并:merge() 實現表連接、concat() 軸向拼接。
    • 分組聚合:groupby() 結合 agg() 計算多維度統計量(如均值、總和)。
2.2 時間序列處理
  • 內置時間解析(pd.to_datetime())、重采樣(resample())、滾動窗口計算,適用于金融分析或物聯網數據。
2.3 可視化與集成
  • 與 Matplotlib 無縫銜接,直接通過 df.plot() 生成柱狀圖、折線圖等。
  • 兼容 NumPy、Scikit-learn 等庫,支持數據預處理到模型訓練的全流程。
2.4 性能優化
  • 向量化運算:底層基于 C 語言加速,避免 Python 循環的低效問題(如 df * 2 比循環快千倍)。
  • 內存優化:使用 category 類型減少字符串存儲空間,eval() 提升表達式計算效率。

💡 四、工程實踐

1. 數據結構基石:Series 與 DataFrame

(1)代碼示例
# 創建 Series
import pandas as pd
price_series = pd.Series([9.9, 15.8, 4.5], name="商品價格", index=["蘋果", "牛奶", "面包"])# 創建 DataFrame
product_df = pd.DataFrame({"品類": ["水果", "乳制品", "烘焙"],"庫存量": [50, 20, 35],"單價": [9.9, 15.8, 4.5]
}, index=["蘋果", "牛奶", "面包"])
(2)核心要點
  • Series 本質:帶標簽的一維數組,索引與值一一對應。
  • DataFrame 核心:二維表格結構,可視為多個 Series 的列集合。
  • 索引對齊特性是 Pandas 高效運算的基礎邏輯。
(3)避坑指南

?? 避免直接修改 df.values 數組,這會破壞索引對齊機制。
?? 創建 DataFrame 時,字典值的長度必須一致,否則會觸發 ValueError

2. 數據加載與初步探索

(1)代碼示例
# 從 CSV 讀取數據(自動識別日期)
sales_data = pd.read_csv("sales.csv", parse_dates=["order_date"])# 數據預覽技巧
print(sales_data.head(3))          # 查看前三行
print(sales_data.describe())       # 數值列統計摘要
print(sales_data.dtypes)           # 查看列數據類型
(2)核心要點
  • 支持 CSV/Excel/SQL 等 15+ 數據源讀取。
  • parse_dates 參數可將字符串自動轉為 datetime 類型。
  • head() + describe() 組合快速掌握數據分布特征。
(3)避坑指南

?? 讀取 Excel 時需額外安裝 openpyxl 庫:pip install openpyxl
?? 大數據文件使用 chunksize 分塊讀取:

for chunk in pd.read_csv("big_data.csv", chunksize=10000):process(chunk)

3. 數據清洗黃金法則

(1)代碼示例
# 處理缺失值
sales_clean = sales_data.dropna(subset=["price"])  # 刪除 price 列缺失行
sales_data["price"].fillna(sales_data["price"].median(), inplace=True)# IQR 法處理異常值
Q1 = sales_data["sales"].quantile(0.25)
Q3 = sales_data["sales"].quantile(0.75)
sales_data = sales_data[~((sales_data["sales"] < (Q1-1.5*(Q3-Q1))) | (sales_data["sales"] > (Q3+1.5*(Q3-Q1))))]
(2)核心要點
  • 缺失值處理三板斧:刪除 (dropna)、填充 (fillna)、插值 (interpolate)。
  • 異常值檢測推薦使用 IQR(四分位距法)或 3σ 原則。
  • 數據轉換時優先使用 inplace=True 減少內存占用。
(3)避坑指南

?? fillna(method="ffill") 向前填充時,需先按時間排序避免邏輯錯誤。
?? 刪除缺失值前務必檢查 df.isna().sum(),避免誤刪有效數據。

4. 數據聚合與分組魔法

(1)經典代碼示例
# 單維度聚合
category_sales = sales_data.groupby("category")["sales"].sum()# 多維度高級聚合
sales_stats = sales_data.groupby(["region", "year"]).agg(total_sales=("sales", "sum"),avg_price=("price", "mean"),max_quantity=("quantity", "max")
)
(2)核心要點
  • groupby 本質是 “拆分-應用-合并” 三階段操作。
  • 聚合函數推薦具名聚合(agg + 元組)提升可讀性。
  • 搭配 pd.cut 進行分箱分析可挖掘深層規律。
(3)避坑指南

?? 分組鍵包含 NaN 時會自動創建名為 NaN 的組,建議提前處理。
?? 避免在分組后直接修改數據,應使用 transformapply

5. 數據合并高階技巧

(1)代碼示例
# 橫向拼接(列擴展)
combined = pd.concat([df1, df2], axis=1)# 數據庫風格連接
merged_data = pd.merge(orders, customers, how="left", left_on="customer_id", right_on="id")# 索引對齊合并
joined_df = df1.join(df2, how="inner")
(2)核心要點
  • concat 適合簡單堆疊,merge 適合鍵關聯合并。
  • 合并前務必檢查鍵列唯一性:df.duplicated().sum()
  • 多表連接推薦使用 pd.merge(ordered=True) 保持順序。
  • 數據合并方法選擇:
Yes
No
Yes
No
需要合并數據
相同結構?
concat 軸向拼接
有連接鍵?
merge 鍵連接
join 索引對齊
輸出合并結果
(3)避坑指南

?? 多對多連接會產生笛卡爾積,導致數據量爆炸式增長。
?? 合并后出現大量 NaN 值時,檢查連接鍵的數據類型是否一致。

6. 效率優化錦囊

  1. 類型轉換:將字符串列轉為 category 類型可降內存 80%。
    df["gender"] = df["gender"].astype("category")
    
  2. 矢量化運算:用 df["col1"] + df["col2"] 替代循環。
  3. 查詢優化:大數據集使用 df.query("price > 100") 比布爾索引更快。

🌟 五、總結說明

Pandas 的核心價值在于將復雜的數據操作簡化為高效、可讀的代碼。通過本文,讀者可掌握:

  • 核心數據結構:Series 和 DataFrame 的使用方法。
  • 數據處理能力:清洗、篩選、聚合、合并等關鍵操作。
  • 性能優化技巧:類型轉換、矢量化運算、查詢優化。
  • 實戰應用:結合真實數據集進行實戰演練。

🚀 六、結語

本章完成了 Pandas 入門知識的核心講解。下篇將深入探討進階主題,包括高級數據處理技巧、性能調優、以及在深度學習中的應用。敬請期待!


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

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

相關文章

數字萬用表的使用教程

福祿克經濟型數字萬用表前面板按鍵功能介紹示意圖 1. 萬用表簡單介紹 萬用表是一種帶有整流器的、可以測量交、直流電流、電壓及電阻等多種電學參量的磁電式儀表。分為數字萬用表&#xff0c;鉗形萬用表&#xff0c; &#xff08;1&#xff09;表筆分為紅、黑二只。使用時黑色…

C# IComparable<T> 使用詳解

總目錄 前言 在C#編程中&#xff0c;IComparable<T> 是一個非常重要的接口&#xff0c;它允許我們為自定義類型提供默認的比較邏輯。這對于實現排序、搜索和其他需要基于特定規則進行比較的操作特別有用。本文將詳細介紹 IComparable<T> 的使用方法、應用場景及其…

DeepSeek使用手冊分享-附PDF下載連接

本次主要分享DeepSeek從技術原理到使用技巧內容&#xff0c;這里展示一些基本內容&#xff0c;后面附上詳細PDF下載鏈接。 DeepSeek基本介紹 DeepSeek公司和模型的基本簡介&#xff0c;以及DeepSeek高性能低成本獲得業界的高度認可的原因。 DeepSeek技術路線解析 DeepSeek V3…

Hugging Face 推出 FastRTC:實時語音視頻應用開發變得得心應手

估值超過 40 億美元的 AI 初創公司 Hugging Face 推出了 FastRTC&#xff0c;這是一個開源 Python 庫&#xff0c;旨在消除開發者在構建實時音頻和視頻 AI 應用時的主要障礙。 "在 Python 中正確構建實時 WebRTC 和 Websocket 應用一直都很困難&#xff0c;"FastRTC…

for循環相關(循環的過程中對數據進行刪除會踩坑)

# 錯誤方式&#xff0c; 有坑&#xff0c;結果不是你想要的。 user_list ["劉的話", "范德彪", "劉華強", 劉尼古拉斯趙四, "宋小寶", "劉能"] for item in user_list: if item.startswith("劉"): …

Qt顯示一個hello world

一、顯示思路 思路一&#xff1a;通過圖形化方式&#xff0c;界面上創建出一個控件顯示。 思路二&#xff1a;通過編寫C代碼在界面上創建控件顯示。 二、思路一實現 點開 Froms 的 widget.ui&#xff0c;拖拽 label 控件&#xff0c;顯示 hello world 即可。 qmake 基于 .…

復合機器人為 CNC 毛坯件上下料注入 “智能強心針”

在競爭日益激烈的 CNC 加工行業&#xff0c;如何提升生產效率、保證產品質量、實現智能化生產成為眾多企業亟待解決的問題。富唯智能憑借其先進的復合機器人技術&#xff0c;成功為多家 CNC 加工企業提供了毛坯件上下料的優質解決方案&#xff0c;有效提升了生產效能&#xff0…

電商業務數據測試用例參考

1. 數據采集層測試 用例編號測試目標測試場景預期結果TC-001驗證用戶行為日志采集完整性模擬用戶瀏覽、點擊、加購行為Kafka Topic中日志記錄數與模擬量一致TC-002驗證無效數據過濾規則發送爬蟲請求&#xff08;高頻IP&#xff09;清洗后數據中無該IP的日志記錄 2. 數據處理層…

Spring Cloud Gateway 網關的使用

在之前的學習中&#xff0c;所有的微服務接口都是對外開放的&#xff0c;這就意味著用戶可以直接訪問&#xff0c;為了保證對外服務的安全性&#xff0c;服務端實現的微服務接口都帶有一定的權限校驗機制&#xff0c;但是由于使用了微服務&#xff0c;就需要每一個服務都進行一…

webstorm的Live Edit插件配合chrome擴展程序JetBrains IDE Support實現實時預覽html效果

前言 我們平時在前端網頁修改好代碼要點擊刷新再去看修改的效果&#xff0c;這樣比較麻煩&#xff0c;那么很多軟件都提供了實時預覽的功能&#xff0c;我們一邊編輯代碼一邊可以看到效果。下面說的是webstorm。 1 Live Edit 首先我們需要在webstorm的settings里安裝插件Live …

map的operator[]的實現

map的operator[]的實現 operator[]里包含插入操作&#xff0c;所以我們先看一下首先看一下map的insert函數 返回值是一個pair類型。正常的常見的insert&#xff0c;插入成功返回true&#xff0c;失敗返回false 這里設計的insert不單單返回布爾值&#xff0c;而是返回一個pair…

定時器的編碼器接口模式

選擇編碼器接口模式的方法是&#xff1a;如果計數器只在TI2的邊沿計數&#xff0c;則置TIMx_SMCR寄存器中的SMS001&#xff0c;如果只在TI1邊沿計數&#xff0c;則置SMS010&#xff0c;如果計數器同時在TI1和TI2邊沿計數&#xff0c;則置SMS 011 明確一點&#xff0c;計數器…

Openshift配置默認調度

配置默認調度選擇角色為worker的機器運行pod。 編輯scheduler oc edit schedulers.config.openshift.iospec:defaultNodeSelector: node-role.kubernetes.io/worker ## 添加這一段如果pod需要運行在非worker主機&#xff0c;需要配置pod所在的項目添加注解 openshift.io/node…

突破光學成像局限:全視野光學血管造影技術新進展

全視野光學血管造影&#xff08;FFOA&#xff09;作為一種實時、無創的成像技術&#xff0c;能夠提取生物血液微循環信息&#xff0c;為深入探究生物組織的功能和病理變化提供關鍵數據。然而&#xff0c;傳統FFOA成像方法受到光學鏡頭景深&#xff08;DOF&#xff09;的限制&am…

OpenHarmony 進階——HDF 驅動框架的原理小結

文章大綱 引言一、HDF的驅動加載&#xff08;驅動安裝&#xff09;方式1、動態加載&#xff08;主要是uhdf&#xff09;2、靜態加載(主要是khdf)2.1、驅動入口實現2.1.1、Bind接口2.1.2、Init接口2.1.3、Release接口 2.2、HDF_INIT 驅動入口符號2.3、獲取驅動列表2.4、獲取設備…

大模型應用:多輪對話(prompt工程)

概述 在與大型語言模型&#xff08;如ChatGPT&#xff09;交互的過程中&#xff0c;我們常常體驗到與智能助手進行連貫多輪對話的便利性。那么&#xff0c;當我們開啟一個新的聊天時&#xff0c;系統是如何管理聊天上下文的呢&#xff1f; 一、初始上下文的建立 1. 創建新會…

如何為JAR設置定時重啟?

AI越來越火了&#xff0c;我們想要不被淘汰就得主動擁抱。推薦一個人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;最重要的屌圖甚多&#xff0c;忍不住分享一下給大家。點擊跳轉到網站 前面我們說過了如何將jar交由Systemctl管理&#xff0c;下面我們…

神碼AC-AP無線部署

神碼AC-AP無線部署: 1.設置基礎網絡 交換機設置 service dhcp ! ip dhcp pool ap (AP用地址) network-address 10.1.1.0 255.255.255.0 default-router 10.1.1.254 option 43 hex 010401010101 &#xff08;AC IP地址16進制&#…

【Redis】常用命令匯總

Redis 作為高性能的鍵值存儲數據庫&#xff0c;提供了豐富的命令集&#xff0c;主要涵蓋 字符串 (String)、哈希 (Hash)、列表 (List)、集合 (Set)、有序集合 (ZSet)、鍵 (Keys)、Geo&#xff08;地理位置&#xff09;、HyperLogLog&#xff08;基數統計&#xff09;、Bitmap&a…

Redis - 高可用實現方案解析:主從復制與哨兵監控

文章目錄 Pre概述Redis 高可用實現方案一、主從復制機制1.1 全量同步流程1.2 增量同步&#xff08;PSYNC&#xff09;流程 二、哨兵監控機制2.1 故障轉移時序流程 三、方案對比與選型建議四、生產環境實踐建議 Pre Redis-入門到精通 Redis進階系列 Redis進階 - Redis主從工作…