初識 Pandas:Python 數據分析的利器

在數據分析、數據清洗和可視化等領域,Python 無疑是最受歡迎的語言之一,而在 Python 的數據處理生態中,Pandas 是最核心、最基礎的庫之一。如果你接觸數據分析、機器學習、金融建模,或者只是想處理一些 Excel 表格,那么學會 Pandas 是你不可避免的一步。

本文將系統介紹 Pandas 的基礎知識,包括其核心數據結構、常用功能和實際應用示例,幫助你打下堅實的 Pandas 基礎。


一、Pandas 是什么?

Pandas 是一個基于 NumPy 構建的數據分析庫,由 Wes McKinney 在 2008 年開發。Pandas 的目標是提供靈活、高效、易于使用的數據結構和數據分析工具。

Pandas 的名字來源于“panel data”,即經濟學中的“面板數據”。


二、Pandas 的兩大核心數據結構

1. Series:一維標記數組

可以理解為帶標簽的一維數組,可以存儲任意類型的數據(整數、浮點數、字符串等)。

import pandas as pds = pd.Series([1, 3, 5, None, 6])
print(s)

輸出:

0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
dtype: float64

特點:

  • 自動生成索引(也可以自定義索引)

  • 支持缺失值(NaN)

  • 支持向量化操作

2. DataFrame:二維表格型數據結構

可以看作是由多個 Series 按列組成的二維表,類似 Excel 表格或者數據庫表。

data = {'姓名': ['張三', '李四', '王五'],'年齡': [25, 30, 28],'城市': ['北京', '上海', '廣州']
}
df = pd.DataFrame(data)
print(df)

輸出:

   姓名  年齡  城市
0  張三  25  北京
1  李四  30  上海
2  王五  28  廣州

三、讀取與保存數據

Pandas 支持多種格式的數據讀寫:

# 讀取 CSV 文件
df = pd.read_csv('data.csv')# 寫入 CSV 文件
df.to_csv('output.csv', index=False)# 讀取 Excel 文件
df = pd.read_excel('data.xlsx')# 寫入 Excel 文件
df.to_excel('output.xlsx', index=False)# 讀取 JSON 文件
df = pd.read_json('data.json')

四、常用操作

1. 查看數據

df.head()      # 查看前5行
df.tail(3)     # 查看后3行
df.info()      # 數據摘要信息
df.describe()  # 數據統計摘要

2. 選擇數據

df['姓名']         # 選擇一列
df[['姓名', '城市']]  # 選擇多列
df.iloc[0]         # 按行號選擇第1行
df.loc[1, '年齡']  # 按標簽選取

3. 過濾數據

df[df['年齡'] > 27]  # 年齡大于27的行

4. 修改數據

df['年齡'] = df['年齡'] + 1  # 所有年齡加1
df.loc[0, '城市'] = '深圳'  # 修改單元格

五、缺失值處理

df.isnull()         # 判斷缺失
df.dropna()         # 刪除缺失值
df.fillna(0)        # 填充缺失值

六、分組與聚合(GroupBy)

grouped = df.groupby('城市')
print(grouped['年齡'].mean())  # 每個城市的平均年齡

七、合并與拼接

拼接(上下或左右)

pd.concat([df1, df2], axis=0)  # 縱向拼接
pd.concat([df1, df2], axis=1)  # 橫向拼接

合并(類似 SQL 的 JOIN)

pd.merge(df1, df2, on='id', how='inner')

八、排序

df.sort_values(by='年齡')             # 按年齡升序
df.sort_values(by='年齡', ascending=False)  # 降序

九、應用函數

df['年齡'].apply(lambda x: x + 10)  # 每個年齡加10
df.applymap(str)  # 對整個 DataFrame 應用函數

十、實際案例:讀取 CSV 并統計分析

假設我們有一個名為 sales.csv 的銷售數據文件:

日期,銷售額,地區
2023-01-01,1000,北京
2023-01-02,1200,上海
2023-01-03,800,廣州
df = pd.read_csv('sales.csv')
print(df.groupby('地區')['銷售額'].sum())

輸出:

地區
上海    1200
北京    1000
廣州     800
Name: 銷售額, dtype: int64

結語

Pandas 是數據處理的瑞士軍刀,無論你是分析師、數據科學家,還是工程師,都值得深入學習。本文只是入門介紹,實際應用中 Pandas 的功能遠不止于此,比如時間序列分析、多重索引、高性能數據讀取等。

下一步建議深入學習:

  • Pandas 官方文檔:pandas documentation — pandas 2.2.3 documentation

  • 結合 Matplotlib/Seaborn 進行可視化

  • 實戰項目練習,例如 Kaggle 競賽

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

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

相關文章

SpringBoot項目使用POI-TL動態生成Word文檔

近期項目工作需要動態生成Word文檔的需求,特意調研了動態生成Word的技術方案。主要有以下兩種: 第一種是FreeMarker模板來進行填充;第二種是POI-TL技術使用Word模板來進行填充; 以下是關于POI-TL的官方介紹 重點關注&#xff1…

fakeroot 在沒有超級用戶權限的情況下模擬文件系統的超級用戶行為

fakeroot 是一個在 Linux 環境中使用的工具,它允許用戶在沒有超級用戶權限的情況下模擬文件系統的超級用戶行為。它是一個在 Linux 環境中廣泛使用的工具,通常包含在大多數 Linux 發行版的軟件倉庫中。? 主要功能 ?模擬 root 權限?:fake…

Spring Spring Boot 常用注解整理

Spring & Spring Boot 常用注解整理 先理解核心概念:什么是注解(Annotation)?第一部分:IOC(控制反轉)和 DI(依賴注入)1. Component2. Service, Repository, Controll…

AIGC與數字媒體實驗室解決方案分享

第1部分 概述 1.1 建設目標 1.深度融合AIGC技術,培養能夠駕馭新質生產力的數字媒體人才 通過引入前沿的AIGC技術,確保學生能夠接觸到最先進的人工智能應用。教學內容理論和實踐結合,讓學生在實際操作中熟練掌握AIGC工具,生成高…

訊聯云庫項目開發日志(二)AOP參數攔截

目錄 利用AOP實現參數攔截: 一、??HTTP請求進入Controller?(發送郵件驗證碼) 二、AOP切面觸發 1. 切面攔截(GlobalOperactionAspect.class) method.getAnnotation()?? null interceptor 判斷?? 2.參數校驗注解 3. 參…

用OBD部署OceanBase社區版的避坑指南

以下是用OBD黑屏部署 OceanBase社區版時容易碰到的幾個問題及解決思路,供大家參考。 一、 遇坑步驟:用yaml文件部署集群: obd cluster deploy obtest -c mini-single-example.yaml 報錯: Package oceanbase-ce-4.2.1.8-108000…

無錫哲訊科技:引領芯片封裝SAP系統的智能化革命

芯片封裝行業的數字化轉型 在全球半導體產業高速發展的今天,芯片封裝作為產業鏈的關鍵環節,直接影響著芯片的性能、可靠性和成本。隨著5G、人工智能、物聯網等技術的普及,市場對芯片的需求激增,封裝企業面臨著效率提升、良率優…

從海洋生物找靈感:造個機器人RoboPteropod,它能在水下干啥?

大家好!在如今人類對水下環境探索不斷深入的時代,從水下考古到珊瑚礁考察,各種任務都離不開水下機器人的助力。但傳統水下機器人尺寸較大,在狹窄的水下空間施展不開。今天,我們就來認識一款受海洋小生物啟發而設計的仿…

區塊鏈blog1__合作與信任

🍂我們的世界 🌿不是孤立的,而是網絡化的 如果是單獨孤立的系統,無需共識,而我們的社會是網絡結構,即結點間不是孤立的 🌿網絡化的原因 而目前并未發現這樣的理想孤立系統,即現實中…

Linux服務之lvs+keepalived nginx+keepalived負載均衡實例解析

目錄 一.LVSKeepAlived高可用負載均衡集群的部署 二.NginxKeepAlived高可用負載均衡集群的部署 一.LVSKeepAlived高可用負載均衡集群的部署 實驗環境 主keepalived:192.168.181.10 lvs (7-1) 備keepalived:192.168.181.10…

50天50個小項目 (Vue3 + Tailwindcss V4) ? |搭建項目框架

🖤 一個專注于「Vue3 TailwindCSS」的 50 天極簡開發挑戰,探索組件邊界,打磨技術鋒芒。 🎉 歡迎來到 50 個小項目的第一天!今天我們將從零開始搭建一個 Vue3 項目,并引入 Tailwind CSS v4,為后…

Android 中 網絡圖片加載庫 Glide 簡介

Glide 是一個功能強大且廣泛使用的圖片加載庫,適用于 Android 應用程序。它提供了簡單易用的 API,用于從網絡、本地存儲或資源中加載圖片,并支持圖片的緩存、轉換、占位圖、動畫等功能。 一、Glide 主要特點 簡單易用 提供簡潔的 API,一行代碼即可加載圖片。 支持多種數據…

07 web 自動化之 Unittest 應用:測試報告裝飾器斷言

文章目錄 一、常見的第三方庫結合 unittest 生產 html 格式測試報告1、HtmlTestRunner2、BeatifulReport 二、裝飾器 unittest.skip 強制跳過&條件跳過三、unittest的常用斷言方法 一、常見的第三方庫結合 unittest 生產 html 格式測試報告 1、HtmlTestRunner 官網下載 …

【Python 面向對象】

Python 的面向對象編程(OOP)通過類(Class)和對象(Object)實現代碼結構化,支持封裝、繼承和多態三大特性。以下是系統化指南: 一、類與對象基礎 1. 定義類 class Dog:# 類屬性&…

STM32F103_LL庫+寄存器學習筆記23 - PWM波形輸出及軟件方式調整周期與占空比

導言 脈寬調制(PWM)是 STM32 定時器最常用的輸出模式之一,廣泛應用于電機驅動、LED 調光、伺服控制和功率管理等場景。本篇文章將以 TIM5 為例,從寄存器層面深入剖析 PWM 輸出的原理與實現步驟。通過本篇博客,你不僅能…

堆(Heap)

1. 堆(Heap) 1.1. Python實現堆的插入、堆頂刪除和排序 class MaxHeap:def __init__(self):# 初始化空堆,使用列表表示self.heap []def insert(self, val):# 插入元素并執行上浮self.heap.append(val)self._sift_up(len(self.heap) - 1)de…

Spring類

BeanDefinition BeanDefinition表示Bean定義,BeanDefinition中存在很多屬性用來描述一個Bean的特點。比如: class,表示Bean類型scope,表示Bean作用域,單例或原型等lazyInit:表示Bean是否是懶加載initMeth…

在vue中this.$emit有哪些作用,事件監控具體含義,以及這些子組件能封裝哪些功能組件

this.$emit 的作用 this.$emit 的作用是觸發一個自定義事件,并將數據傳遞給父組件。父組件可以通過 v-on(或 )監聽這個事件,并在事件觸發時執行相應的處理函數。 this.content 的作用 this.content 是子組件的 props&#xff0…

前端流行框架Vue3教程:16. 組件事件配合`v-model`使用

組件事件配合v-model使用 如果是用戶輸入,我們希望在獲取數據的同時發送數據配合v-model 來使用,幫助理解組件間的通信和數據綁定。 🧩 第一步:創建子組件(SearchComponent.vue) 這個組件用于處理用戶的搜…

《Navicat之外的新選擇:實測支持國產數據庫的SQLynx核心功能解析》

數據庫工具生態的新變量 在數據庫管理工具領域,Navicat長期占據開發者心智。但隨著國產數據庫崛起和技術信創需求,開發者對工具的兼容性、輕量化和本土化適配提出了更高要求。近期體驗了一款名為SQLynx的國產數據庫管理工具(麥聰旗下產品&am…