【AI Study】第四天,Pandas(1)- 基礎知識

文章概要

本文詳細介紹 Pandas 庫的基礎知識,包括:

  • Pandas 的基本概念和特點
  • 安裝和配置方法
  • 核心數據結構(Series 和 DataFrame)
  • 各種數據類型的處理方法
  • 實際應用示例

什么是 Pandas

Pandas 是 Python 中最流行的數據分析庫之一,它提供了高性能、易用的數據結構和數據分析工具。Pandas 的名字來源于 “Panel Data”(面板數據),這是一個計量經濟學術語,用于描述多維結構化數據集。

Pandas 的主要特點

  1. 強大的數據結構

    • Series:一維帶標簽數組
    • DataFrame:二維表格型數據結構
    • Panel:三維數據結構(在新版本中已棄用)
  2. 靈活的數據處理能力

    • 數據清洗和準備
    • 數據轉換和重塑
    • 數據合并和連接
    • 數據分組和聚合
  3. 豐富的數據分析功能

    • 統計分析
    • 時間序列分析
    • 數據可視化集成
  4. 高性能

    • 基于 NumPy 構建
    • 優化的 C 語言實現
    • 支持大數據集處理

Pandas 與其他數據分析工具的比較

特性PandasNumPyExcel
數據結構Series, DataFramendarray表格
處理速度非常快較慢
內存使用中等
可視化基礎豐富
適用場景數據分析、清洗科學計算簡單分析

安裝與配置

安裝 Pandas

使用 pip 安裝:

pip install pandas

使用 conda 安裝:

conda install pandas

導入 Pandas

在 Python 中導入 Pandas:

import pandas as pd

版本檢查

檢查 Pandas 版本:

import pandas as pd
print(pd.__version__)

數據結構

Series 數據結構

Series 是 Pandas 中最基本的數據結構,它是一個一維的帶標簽數組。

創建 Series
# 從列表創建
s1 = pd.Series([1, 3, 5, 7, 9])# 從字典創建
s2 = pd.Series({'a': 1, 'b': 2, 'c': 3})# 指定索引
s3 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
Series 的基本操作
# 訪問數據
print(s1[0])  # 通過位置訪問
print(s2['a'])  # 通過標簽訪問# 數學運算
print(s1.mean())  # 計算平均值
print(s1.sum())   # 計算總和# 布爾索引
print(s1[s1 > 5])  # 選擇大于5的值
Series 的索引和切片
# 位置索引
print(s1[0:3])  # 選擇前三個元素# 標簽索引
print(s2['a':'c'])  # 選擇標簽從a到c的元素# 條件索引
print(s1[s1 > 5])  # 選擇大于5的元素

DataFrame 數據結構

DataFrame 是 Pandas 中最常用的數據結構,它是一個二維的表格型數據結構。

創建 DataFrame
# 從字典創建
df1 = pd.DataFrame({'A': [1, 2, 3],'B': ['a', 'b', 'c']
})# 從列表創建
df2 = pd.DataFrame([[1, 'a'],[2, 'b'],[3, 'c']
], columns=['A', 'B'])# 從 NumPy 數組創建
import numpy as np
df3 = pd.DataFrame(np.random.randn(3, 3))
DataFrame 的基本操作
# 查看數據
print(df1.head())  # 查看前幾行
print(df1.tail())  # 查看后幾行
print(df1.info())  # 查看數據信息# 選擇列
print(df1['A'])  # 選擇單列
print(df1[['A', 'B']])  # 選擇多列# 選擇行
print(df1.iloc[0])  # 通過位置選擇行
print(df1.loc[0])   # 通過標簽選擇行
DataFrame 的索引和切片
# 選擇特定行和列
print(df1.iloc[0:2, 0:1])  # 選擇前兩行第一列# 條件選擇
print(df1[df1['A'] > 1])  # 選擇A列大于1的行# 多條件選擇
print(df1[(df1['A'] > 1) & (df1['B'] == 'b')])

數據類型

數值類型

Pandas 支持多種數值類型:

  • int64:64位整數
  • float64:64位浮點數
  • bool:布爾值
# 查看數據類型
print(df1.dtypes)# 轉換數據類型
df1['A'] = df1['A'].astype('float64')

字符串類型

Pandas 中的字符串操作:

# 字符串方法
df1['B'] = df1['B'].str.upper()  # 轉換為大寫
df1['B'] = df1['B'].str.lower()  # 轉換為小寫

時間類型

Pandas 提供了強大的時間序列處理功能:

# 創建時間序列
dates = pd.date_range('20230101', periods=3)
df1['date'] = dates# 時間操作
df1['date'] = df1['date'] + pd.Timedelta(days=1)

分類數據

使用分類數據可以節省內存并提高性能:

# 創建分類數據
df1['B'] = df1['B'].astype('category')

缺失值處理

Pandas 提供了多種處理缺失值的方法:

# 檢查缺失值
print(df1.isnull())# 刪除缺失值
df1.dropna()# 填充缺失值
df1.fillna(0)  # 用0填充
df1.fillna(method='ffill')  # 用前一個值填充

實際應用示例

示例1:學生成績分析

# 創建學生成績數據
scores = pd.DataFrame({'姓名': ['張三', '李四', '王五', '趙六'],'語文': [85, 92, 78, 88],'數學': [92, 88, 95, 82],'英語': [88, 85, 90, 87]
})# 計算平均分
scores['平均分'] = scores[['語文', '數學', '英語']].mean(axis=1)# 按平均分排序
scores_sorted = scores.sort_values('平均分', ascending=False)# 顯示結果
print(scores_sorted)

示例2:銷售數據分析

# 創建銷售數據
sales = pd.DataFrame({'日期': pd.date_range('20230101', periods=5),'產品': ['A', 'B', 'A', 'C', 'B'],'銷量': [100, 150, 120, 80, 200],'單價': [10, 15, 10, 20, 15]
})# 計算銷售額
sales['銷售額'] = sales['銷量'] * sales['單價']# 按產品分組統計
product_stats = sales.groupby('產品').agg({'銷量': 'sum','銷售額': 'sum'
})# 顯示結果
print(product_stats)

總結

Pandas 基礎部分涵蓋了:

  1. Pandas 的基本概念和特點
  2. 安裝和配置方法
  3. 核心數據結構(Series 和 DataFrame)
  4. 各種數據類型的處理方法
  5. 實際應用示例

這些基礎知識是使用 Pandas 進行數據分析的基礎,掌握這些內容后,您就可以開始進行更復雜的數據分析工作了。在實際應用中,建議多練習這些基礎操作,熟悉各種數據結構的特性和使用方法,為后續的進階學習打下堅實的基礎。

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

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

相關文章

重構氣血經絡的數學模型:氣血經絡級聯控制系統核心方程

從融智學視域,重構氣血經絡的數學模型 摘要: 融智學視域,通過三元耦合框架,重構氣血經絡模型,建立跨學科認知體系。五大分支協同運作:數學融智學構建纖維叢模型,邏輯融智學建立防歧義語義網&…

python爬蟲:某網站價格數字加密破解

文章目錄 前言一、案例二、破解流程1.原理2.找到woff文件3.分析woff文件4.代碼實現1.轉化woff文件2.繪圖并ocr識別3.映射數據 三、總結 前言 有時我們在進行網頁抓取采集數據時,有些重要的數據比如說價格,數量等信息會進行加密,通過復制或者簡單的采集是…

DigitalOcean 攜手 AMD 推出 AMD Instinct? MI300X GPU Droplet,加速 AI 創新

近日,DigitalOcean(NYS:DOCN)作為全球最簡單易用的可擴展云平臺,宣布與 AMD 建立合作,為 DigitalOcean 客戶提供 AMD Instinct? GPU,以 AMD Instinct? MI300X GPU Droplet 的形式支持其 AI 工作負載。此舉…

小白暢通Linux之旅-----DNS項目實戰配置

目錄 一、項目要求 1、正反向解析配置 2、主從配置 二、腳本編寫配置 1、主服務器腳本編寫 2、從服務器腳本編寫 三、項目檢測 1、正反向解析檢測 (1)主服務器腳本啟動 (2)測試主機配置 (3)正反…

Codigger:探索數字工作新架構

在軟件開發與數字工作領域,技術迭代的腳步從未停歇,開發者和系統管理員都在尋找更高效的工具和平臺。Codigger 作為一項創新技術成果,憑借其獨特的定位和架構,在行業內逐漸嶄露頭角。 Codigger “分布式操作系統”,它…

微信中 qrcode 生成二維碼長按無效果的解決方案

引言 我們先來看這樣一段代碼 <divid"qrcode"ref"qrcode"class"bind-code-img"style"height: 180px;width: 180px;margin-top: 22px;display: none; "></div> new QRCode("qrcode", {width: 210,height: 210,t…

《網絡安全與防護》作業復習

填空題 1. 網絡數據庫與數據安全專項作業 填空題解析&#xff1a; 數據庫安全的“三大核心目標”是 完整性&#xff1b;保密性&#xff1b;可用性 解釋&#xff1a;數據庫安全的三個核心目標是確保數據的完整性、保密性以及可用性&#xff0c;即保護數據不被篡改、未經授權訪…

【windows常見文件后綴】

文件后綴解釋css層疊樣式表&#xff08;Cascading Style Sheets&#xff09;&#xff1a;用于描述HTML或XML&#xff08;包括如SVG、XHTML等XML方言&#xff09;文檔的呈現樣式&#xff0c;控制網頁的布局、顏色、字體等視覺效果。jsJavaScript&#xff1a;一種輕量級的解釋型或…

labelme啟動報錯動態鏈接庫DLL初始化例程失敗

安裝 pip install labelme啟動 labelmewin11python3.12&#xff0c;pycharm venv 安裝&#xff1a; pip install labelme&#xff0c;啟動labelme報錯&#xff1a; 降級numpy&#xff0c;降級onnxruntime pip install “numpy<2.0” pip install onnxruntime1.18.0 再次cm…

Mybatis(javaweb第九天)

Mybatis基礎操作 占位符&#xff1a;#{變量名} 注意事項&#xff1a;如果Mapper接口方法只有一個普通類型參數&#xff0c;屬性名可以隨便寫 > Preparing: delete from emp where id? > Parameters: 1(Integer) 預編譯SQL 不會將值直接放在SQL語句中&#xff0c;而是…

C#開發MES管理系統源碼工業生產線數據采集WPF上位機產線執行系統源碼

該源碼是實際生產線運行的實際項目&#xff0c;全套源碼。適合開發者學習參考&#xff0c;有需要源碼可以聯系博主

`ngx_otel_module` NGINX OpenTelemetry 分布式追蹤實戰

1. 模塊簡介 ngx_otel_module 為 NGINX&#xff08;開源版 1.25.3&#xff0c;商業版 1.23.4&#xff09;提供了 OpenTelemetry&#xff08;OTel&#xff09;分布式追蹤支持&#xff0c;能夠&#xff1a; 自動采集 HTTP 請求的生命周期 Span上下文傳播&#xff1a;兼容 W3C t…

Vue+TypeScript 枚舉(Enum)的使用規范

在 TypeScript 中&#xff0c;枚舉&#xff08;Enum&#xff09;的命名應遵循以下規范&#xff0c;這些規范結合了 TypeScript 官方建議和行業最佳實踐&#xff1a; 枚舉命名規范&#xff08;TypeScript/Vue 項目&#xff09; 基本命名規則&#xff1a; 使用 PascalCase&#…

一個完整的LSTM風光發電預測與并網優化方案,包含數據處理、模型構建、訓練優化、預測應用及系統集成實現細節

以下是一個完整的LSTM風光發電預測與并網優化方案,包含數據處理、模型構建、訓練優化、預測應用及系統集成實現細節: 風光發電功率預測與并網優化系統 基于LSTM的時間序列預測與儲能協同控制 第一部分:系統架構設計(1200字) 1.1 整體技術路線 #mermaid-svg-U5pxzefmzZ4s…

如何在 MX Linux 上安裝 Mint 的 Cinnamon 桌面 UI

如何在 MX Linux 上安裝 Mint 的 Cinnamon 桌面 UI 你是否想在 MX Linux 上安裝流行的 Linux Mint Cinnamon 圖形用戶界面?那么這里有一個教程…… Cinnamon 是一個類似 Windows 7 的界面,它默認安裝在 Linux Mint 操作系統中。它使 Mint 非常易于理解和使用,這也是 Mint …

OpenStack 入門

目錄 簡介 一、云計算與 OpenStack 基礎概念 1.1 云計算概述 1.2 OpenStack 簡介 二、OpenStack 單機環境部署 2.1 環境準備 2.2 部署前準備工作 2.3 在線部署 OpenStack&#xff08;Train 版本&#xff09; 三、通過 Dashboard 部署 OpenStack 的功能 3.1 登錄 Dash…

【Git】關于項目開發分支的使用規范

背景 在項目開發過程中&#xff0c;往往一個優秀的產品都會出現不斷的版本迭代&#xff0c;我時常在項目發布后對于如何結合后續更新的業務場景在分支上的應用沒有一個很好的辦法&#xff0c;一直也比較苦惱。目前項目的迭代場景如下&#xff0c;一個A項目&#xff0c;經過需求…

msquic的windows版本編譯

首先確保安裝cmake和powershell&#xff08;需要6以上&#xff0c;本人升級到了7.5&#xff09;&#xff0c;vs&#xff08;本人用的vs2022&#xff09; powershell&#xff0c;默認是5&#xff0c;會編譯不成功&#xff0c;所以附帶一個升級的流程 $PSVersionTable.PSVersion …

批量文件重命名工具 OncePower ,永久免費!

軟件介紹 適用于Windows OncePower是一款Windows批量重命名工具&#xff0c;支持基本及高級匹配重命名&#xff0c;無需復雜正則。特色包括匹配修改、長度截取、日期命名、前綴后綴修改及TXT文件導入。支持保留特定內容、批量移動文件和刪除空文件夾。可保存設置&#xff0c;…

Python入門Day6.1:異常處理

一、什么是異常&#xff08;Exception&#xff09;&#xff1f; 異常是指程序運行過程中出現的錯誤情況。比如&#xff1a; 打開一個不存在的文件0作為除數列表索引越界類型轉換失敗 二、基本結構&#xff1a;try...except try:# 可能出錯的代碼 except 錯誤類型:# 出錯時執…