Python學習(十四)pandas庫入門手冊

目錄

    • 一、安裝與導入
    • 二、核心數據結構
      • 2.1 Series 類型(一維數組)
      • 2.2 DataFrame 類型(二維數組)
    • 三、數據讀取與寫入
      • 3.1 讀取 CSV 和 Excel 文件
      • 3.2 寫入數據
    • 四、數據清洗與處理
      • 4.1 處理缺失值
      • 4.2 數據篩選
      • 4.3 數據排序
    • 五、數據分析
      • 5.1 統計描述
      • 5.2 分組聚合
      • 5.3 數據透視表
    • 六、數據可視化
    • 七、高級功能
      • 7.1 合并數據
      • 7.2 處理時間序列

  • 官網地址: https://pandas.pydata.org/

什么是pandas?

pandas 是 Python 中一個強大的 數據處理和分析庫,廣泛應用于 數據清洗轉換分析可視化 等領域。它提供了搞笑的數據結構(如 DataFrameSeries),使得處理結構化數據變得簡單而高效。本文將詳細介紹 pandas 的核心功能和使用方法,幫助你快速掌握這一工具。

pandas 的特點如下:

  • 高效的數據結構: SeriesDataFrame 提供了靈活的數據操作方式。
  • 強大的數據處理能力: 支持數據清洗、轉換、分析和可視化。
  • 豐富的文件格式支持: 可以輕松讀取和寫入 CSV、Excel、JSON 等文件格式。

一、安裝與導入

安裝:

在開始使用 pandas 之前,需要先進行安裝。可以通過以下命令安裝:

pip install pandas

導入:

安裝完成后,在代碼中導入 pandas

import pandas as pd

二、核心數據結構

pandas 的主要數據結構是:Series(一維數據) 和 DataFrame(二維數據)。

2.1 Series 類型(一維數組)

Series 是一個一維數組,可以 存儲任意類型的數據(如整數、字符串、浮點數等),并帶有索引。

創建 Series:

  • 語法:pandas.Series([對象1, 對象2])
import pandas as pd# 從列表創建 Series
s = pd.Series([1, 3, 5, 7, 9])
print(s)

執行結果:

在這里插入圖片描述

訪問 Series:

# 通過索引訪問數據
print(s[0]) # 輸出 1# 通過位置訪問數據
print(s.iloc[1]) # 輸出 3

執行結果:

在這里插入圖片描述

2.2 DataFrame 類型(二維數組)

DataFrame 是一個二維表格數據結構,類似于 Excel 表格或 SQL 表。它由行和列組成,每列可以是不同的數據類型。

創建 DataFrame:

# 從字典創建 DataFrame
data = {"Name": ["Alice", "Bob", "Charlie"],"Age": [25, 30, 35],"City": ["New York", "Los Angeles", "Chicago"]
}
df = pd.DataFrame(data)
print(df)

執行結果:

在這里插入圖片描述

訪問 DataFrame:

# 訪問列
print(df["Name"]) # 輸出 Name 列
print("==============")# 訪問行
print(df.iloc[0]) # 輸出第一行

執行結果:

在這里插入圖片描述


三、數據讀取與寫入

pandas 支持從多種文件格式讀取數據,并將數據寫入這些格式。

3.1 讀取 CSV 和 Excel 文件

讀取 CSV 文件:

df = pd.read_csv("data.csv")
print(df.head())

csv內容如下:

"Name","Age","City"
Alice,25,New York
Bob,30,Los Angeles
Charlie,35,Chicago

執行結果:

在這里插入圖片描述

讀取 Excel 文件:

df = pd.read_excel("data.xlsx", sheet_name="Sheet1")
print(df.head())

Excel 內容如下:

在這里插入圖片描述

執行結果:

在這里插入圖片描述

3.2 寫入數據

寫入 CSV 文件:

df.to_csv("output.csv", index=False)

寫入 Excel 文件:

df.to_excel("output.xlsx", sheet_name="Sheet1", index=False)

四、數據清洗與處理

4.1 處理缺失值

# 檢查缺失項
print(df.isnull())# 填充缺失值
df_filled = df.fillna(0) # 用 0 填充缺失值# 刪除包含缺失值的行
df_dropped = df.ropna()

4.2 數據篩選

# 篩選 Age 大于 30 的行
df_filtered = df[df["Age"] > 30]
print(df_filtered)

執行結果:

在這里插入圖片描述

4.3 數據排序

# 按 Age 列升序排序
df_sorted = df.sort_values(by="Age")
print(df_sorted)

執行結果:

在這里插入圖片描述


五、數據分析

5.1 統計描述

# 查看數據的基本統計信息
print(df.describe())

執行結果:

在這里插入圖片描述

5.2 分組聚合

# 按 City 分組并計算平均年齡
df_grouped = df.groupby("City")["Age"].mean()
print(df_grouped)

執行結果:

在這里插入圖片描述

5.3 數據透視表

# 創建數據透視表
df_pivot = df.pivot_table(index="City", values="Age", aggfunc="mean")
print(df_pivot)

執行結果:

在這里插入圖片描述


六、數據可視化

pandas 結合 matplotlib 可以方便地進行數據可視化。

安裝命令:

pip install matplotlib

示例:繪制柱狀圖

import matplotlib.pyplot as plt# 繪制 Age 列地柱狀圖
df["Age"].plot(kind="bar")
plt.show()

執行結果:

在這里插入圖片描述


七、高級功能

7.1 合并數據

# 合并兩個 DataFrame
df1 = pd.DataFrame({"A": [1, 2], "B": [3, 4]})
df2 = pd.DataFrame({"A": [5, 6], "B": [7, 8]})
df_merged = pd.concat([df1, df2])
print(df_merged)

執行結果:

在這里插入圖片描述

7.2 處理時間序列

# 創建時間序列
dates = pd.date_range("20230101", periods=6)
df_time = pd.DataFrame({"Date": dates, "Value": [1, 2, 3, 4, 5, 6]})
print(df_time)

執行結果:

在這里插入圖片描述

整理完畢,完結撒花~ 🌻





參考地址:

1.pandas用法-全網最詳細教程,https://blog.csdn.net/Strive_For_Future/article/details/126710810

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

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

相關文章

【Python 數據結構 4.單向鏈表】

目錄 一、單向鏈表的基本概念 1.單向鏈表的概念 2.單向鏈表的元素插入 元素插入的步驟 3.單向鏈表的元素刪除 元素刪除的步驟 4.單向鏈表的元素查找 元素查找的步驟 5.單向鏈表的元素索引 元素索引的步驟 6.單向鏈表的元素修改 元素修改的步驟 二、Python中的單向鏈表 ?編輯 三…

第1章:項目概述與環境搭建

第1章:項目概述與環境搭建 學習目標 了解YunChangAction靈感記錄應用的整體架構和功能掌握SwiftUI開發環境的配置方法創建項目基礎結構并理解文件組織方式實現應用的啟動屏幕和基本主題設置 理論知識講解 靈感記錄應用概述 靈感記錄應用是一種專門設計用來幫助…

2025.3.3總結

周一這天,我約了績效教練,主要想了解專業類績效的考核方式以及想知道如何拿到一個更好的績效。其他的崗位并不是很清楚,但是專業類的崗位,目前采取絕對考核,管理層和專家崗采取相對考核,有末尾淘汰。 通過…

FastGPT 源碼:基于 LLM 實現 Rerank (含Prompt)

文章目錄 基于 LLM 實現 Rerank函數定義預期輸出實現說明使用建議完整 Prompt 基于 LLM 實現 Rerank 下邊通過設計 Prompt 讓 LLM 實現重排序的功能。 函數定義 class LLMReranker:def __init__(self, llm_client):self.llm llm_clientdef rerank(self, query: str, docume…

LeetCode 1745.分割回文串 IV:動態規劃(用III或II能直接秒)

【LetMeFly】1745.分割回文串 IV:動態規劃(用III或II能直接秒) 力扣題目鏈接:https://leetcode.cn/problems/palindrome-partitioning-iv/ 給你一個字符串 s ,如果可以將它分割成三個 非空 回文子字符串,…

25年3月5日

1.思維導圖 2.不太會 #include "head.h" int main(int argc, const char *argv[]) {int fdopen("../xiaoxin.bmp","O_RDONLY");if(fd-1)printf("open error");//大小struct stat st;if(stat("…

全球首創!微軟發布醫療AI助手,終結手寫病歷時代

今天凌晨,微軟發布了醫療界首個用于臨床工作流程的AI助手Microsoft Dragon Copilot。 Dragon Copilot是基于語音文本的混合架構,能夠將醫生的語音或臨床口述內容實時轉換為文本。例如,醫生可以通過語音輸入患者的病歷信息、醫囑或診斷結果&a…

[自動駕駛-傳感器融合] 多激光雷達的外參標定

文章目錄 引言外參標定原理ICP匹配示例參考文獻 引言 多激光雷達系統通常用于自動駕駛或機器人,每個雷達的位置和姿態不同,需要將它們的數據統一到同一個坐標系下。多激光雷達外參標定的核心目標是通過計算不同雷達坐標系之間的剛性變換關系&#xff08…

Blazor-路由模板(下)

路由約束 類型約束 我們這里使用{id:int}限制路由&#xff0c;id為int類型&#xff0c;并且路由參數 id 對應的 Id 屬性也必須是 int 類型。我們試試能否正常訪問 page "/demoPage/{id:int}" <h3>demoPage</h3> <h2>路由參數Id&#xff1a;Id&l…

多線程-JUC源碼

簡介 JUC的核心是AQS&#xff0c;大部分鎖都是基于AQS擴展出來的&#xff0c;這里先結合可重入鎖和AQS&#xff0c;做一個講解&#xff0c;其它的鎖的實現方式也幾乎類似 ReentrantLock和AQS AQS的基本結構 AQS&#xff0c;AbstractQueuedSynchronizer&#xff0c;抽象隊列…

通過多線程獲取RV1126的AAC碼流

目錄 一RV1126多線程獲取音頻編碼AAC碼流的流程 1.1AI模塊的初始化并使能 1.2AENC模塊的初始化 ???????1.3綁定AI模塊和AENC模塊 ???????1.4多線程獲取每一幀AAC碼流 ???????1.5每個AAC碼流添加ADTSHeader頭部 ???????1.6寫入具體每一幀AAC的…

JVM常用概念之對象初始化的成本

在JVM常用概念之新對象實例化博客中我講到了對象的實例化&#xff0c;主要包含分配&#xff08;TLAB&#xff09;、系統初始化、用戶初始化&#xff0c;而我在JVM常用概念之線程本地分配緩沖區&#xff08;ThreadLocal Allocation Buffer&#xff0c;TLAB&#xff09;博客中也講…

java后端開發day27--常用API(二)正則表達式爬蟲

&#xff08;以下內容全部來自上述課程&#xff09; 1.正則表達式&#xff08;regex&#xff09; 可以校驗字符串是否滿足一定的規則&#xff0c;并用來校驗數據格式的合法性。 1.作用 校驗字符串是否滿足規則在一段文本中查找滿足要求的內容 2.內容定義 ps&#xff1a;一…

AI---DevOps常備工具(?AI-Integrated DevOps Essential Tools)

AI---DevOps常備工具 技術領域正在迅速發展&#xff0c;隨著我們步入 2025 年&#xff0c;有一點是明確的&#xff1a;人工智能&#xff08;AI&#xff09;不再只是一個流行詞&#xff0c;它是每個 DevOps 工程師都需要掌握的工具。隨著云環境的復雜性增加、對更快部署的需求以…

Pytorch中的主要函數

目錄 一、torch.manual_seed(seed)二、torch.cuda.manual_seed(seed)三、torch.rand(*size, outNone, dtypeNone, layouttorch.strided, deviceNone, requires_gradFalse)四、給大家寫一個常用的自動選擇電腦cuda 或者cpu 的小技巧五、torch.version.cuda&#xff1b;torch.bac…

Spring Boot中對接Twilio以實現發送驗證碼和驗證短信碼

Twilio介紹 Twilio是一家提供云通信服務的公司&#xff0c;旨在幫助開發者和企業通過簡單的API實現各種通信功能。以下是Twilio的一些主要特點和服務介紹&#xff1a; 核心功能 短信服務&#xff08;SMS&#xff09;&#xff1a;允許用戶通過API發送和接收短信&#xff0c;支…

VSCode詳細安裝步驟,適用于 Windows/macOS/Linux 系統

以下是 Visual Studio Code (VSCode) 的詳細安裝步驟&#xff0c;適用于 Windows/macOS/Linux 系統&#xff1a; VSCode 的詳細安裝步驟 一、Windows 系統安裝1. 下載安裝包2. 運行安裝程序3. 驗證安裝 二、macOS 系統安裝1. 方法一&#xff1a;官網下載安裝包2. 方法二&#x…

基于PyTorch的深度學習3——基于autograd的反向傳播

反向傳播&#xff0c;可以理解為函數關系的反向傳播。

設備管理系統功能與.NET+VUE(IVIEW)技術實現

在現代工業和商業環境中&#xff0c;設備管理系統&#xff08;Equipment Management System&#xff0c;簡稱EMS&#xff09;是確保設備高效運行和維護的關鍵工具。本文采用多租戶設計的設備管理系統&#xff0c;基于.NET后端和VUE前端&#xff08;使用IVIEW UI框架&#xff09…

PHP之特性

在你有別的編程語言的基礎下&#xff0c;你想學習PHP&#xff0c;可能要了解的PHP特有的東西。 定界符 使用<<<TT(可以是任意字符&#xff0c;但是不可以在別的地方使用過)和TT&#xff0c;會解析html格式和變量&#xff0c;如果在<<<后面加上單引號就會不…