Pandas 入門到實踐:核心數據結構與基礎操作全解析(Day1 學習筆記)

目錄

一、Pandas 概述

1. 什么是 Pandas

二、核心數據結構

1. Series

索引

顯示索引

隱式索引

創建方式

屬性與方法

數據訪問

索引訪問

切片訪問

布爾索引

2. DataFrame

創建方式

屬性與數據訪問

數據修改

三、索引操作

1. 索引類型

2. 核心索引方法

3. 切片規則

四、缺失數據處理

1. 檢測缺失數據

2. 處理缺失數據

刪除缺失數據

填充缺失數據

五、級聯操作

1. 基本用法

2. 后處理操作


一、Pandas 概述

1. 什么是 Pandas

Pandas 是基于 NumPy 構建的強大數據分析工具集,提供高級數據結構和數據操作工具,是 Python 成為高效數據分析環境的重要因素。其核心特點包括:

  • 專為處理大型結構化數據集設計

  • 基于 NumPy 提供高性能矩陣運算支持

  • 包含大量便捷的數據處理函數和方法

  • 廣泛應用于數據挖掘、數據分析和數據清洗

  • 支持存儲和處理非數值型數據

二、核心數據結構

1. Series

Series 是類似一維數組的對象,由數據索引組成(索引在左,數據在右)。

索引

顯示索引
隱式索引

創建方式

創建方式
示例代碼
列表創建
df = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e']) print(df, type(df))
NumPy 數組創建
arr = np.array(i for i in range(1, 6)) df = pd.Series(arr, index=['a', 'b', 'c', 'd', 'e'])
字典創建
# 也可以通過字典構建series數據類型 dic = { 'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5 } df = pd.Series(dic) print(df, type(df))
屬性與方法
# 基本屬性
print(ser_obj.size)  # 元素個數
print(ser_obj.shape)  # 形狀(返回元組)
print(ser_obj.dtype)  # 數據類型
print(ser_obj.ndim)  # 維度(Series 為 1)
print(ser_obj.index)  # 獲取索引
print(ser_obj.values)  # 獲取數據(返回 NumPy 數組)# 查看數據
# 如果數據量很大,可以使用head()和tail()方法來查看前幾行或后幾行數據
print(ser_obj.head(2))  # 查看前 2 行
print(ser_obj.tail(2))  # 查看后 2 行
數據訪問
索引訪問
# 單個元素訪問
print(ser_obj['a'])  # 按顯式索引
print(ser_obj[0])  # 按隱式索引
切片訪問
# 切片訪問(顯式索引前閉后閉,隱式索引前閉后開)
print(ser_obj[1:3])  # 隱式切片(取索引 1、2)
print(ser_obj['b':'d'])  # 顯式切片(取 'b'、'c'、'd')
布爾索引
#布爾索引
# 創建一個Series對象,包含整數數據,并指定顯示索引
df = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
print(df, type(df))
# df > 3  # 布爾索引
print(df > 3)  # 布爾索引 如果大于3則顯示True,否則顯示False
# 通過布爾索引篩選數據 顯示大于3的值
print(df[df > 3])  # 布爾索引

2. DataFrame

????????DataFrame 是 Pandas中最常用的數據結構之一,它是一個二維的表格數據結構,類似于電子表格或 SQL 表格。DataFrame 由行和列組成,每一列可以是不同的數據類型(整數、浮點數、字符串等)。它提供了豐富的功能來處理和分析數據。

創建方式
創建方式
示例代碼
NumPy 二維數組,ndarray
# 通過ndarray創建DataFrame
from pandas import DataFrame, Series
from numpy import array
# 創建一個二維數組
ndarr = array([[1, 2.1, 3], [4, 5, 6]])
# 創建DataFrame,指定行列索引名
df = DataFrame(ndarr, index = ["a","b"],columns=['A', 'B', 'C'])
# 打印DataFrame及其類型
print(df, type(df))

字典創建
# 通過dict構建DataFrame
dict_data = {'A': 1,'B': pd.Timestamp('20210606'),'C': pd.Series(1, index=list(range(4)), dtype='float32'),'D': np.array([3] * 4, dtype='int32'),'E': ["Python", "Java", "C++", "C"],'F': 'student'}df_obj2 = pd.DataFrame(dict_data)
print(df_obj2)
屬性與數據訪問
# 基本屬性
print(df.shape)  # 形狀 (行數, 列數)
print(df.columns)  # 列索引
print(df.index)  # 行索引# 列訪問
print(df['A'])  # 返回 Series 類型
print(df[['A', 'B']])  # 返回 DataFrame 類型(多列)# 行&列訪問(高級索引)
print(df.loc['a', 'A'])  # 按顯示索引(行標簽, 列標簽)
print(df.iloc[0, 1])  # 按隱式索引(行位置, 列位置)
數據修改
# 添加列
df['G'] = df['D'] + 4  # 新增列 G,值為 D 列加 4# 刪除列
del df['G']  # 刪除列 G#修改2列中索引為1(第二行)的值
df.iloc[1,2] = 10
print(df)

三、索引操作

1. 索引類型

Pandas 支持多種索引類型,包括:

  • 默認索引:整數序列(0,1,2,...)

  • 自定義索引:創建時通過?index?參數指定

  • 多級索引:MultiIndex(層級索引)

  • 時間索引:DatetimeIndex(時間戳類型)

2. 核心索引方法

方法
說明
示例
loc
基于顯示的索引
df.loc['a':'c', 'A':'B'](取行 'a'-'c',列 'A'-'B')
iloc
基于隱式的索引
df.iloc[0:2, 0:1](取前 2 行,第 1 列)
ix
混合索引(已棄用)
建議使用lociloc
替代

3. 切片規則

  • 隱式索引切片:前閉后開(如?df[1:3]?取索引 1、2)

  • 顯式索引切片:前閉后閉(如?df['a':'c']?取 'a'、'b'、'c')

四、缺失數據處理

1. 檢測缺失數據

import pandas as pd
import numpy as np# 生成含缺失值的 DataFrame
df_data = pd.DataFrame([np.random.randn(3), [1., 2., np.nan], [np.nan, 4., np.nan], [1., 2., 3.]])# 檢測缺失值(True 表示缺失)
print(df_data.isnull())  
# 檢測非缺失值(True 表示非缺失)
print(df_data.notna())  

2. 處理缺失數據

刪除缺失數據

# 刪除含缺失值的行(默認 axis=0)
df_dropped_rows = df_data.dropna()  
# 刪除含缺失值的列(axis=1)
df_dropped_cols = df_data.dropna(axis=1)  

填充缺失數據

# 用 0 填充所有缺失值
df_filled_zeros = df_data.fillna(0)  
# 按列填充(例如用列均值填充)
df_filled_mean = df_data.fillna(df_data.mean())  

五、級聯操作

級聯操作用于合并多個數據集,通過?pd.concat?實現。

1. 基本用法

import pandas as pd# 讀取 Excel 多個工作表
sheets_li = pd.read_excel("./data.xlsx", sheet_name=[1, 2, 3])# 列級聯(axis=1),外連接(保留所有數據)
res = pd.concat([sheets_li[1], sheets_li[2]], axis=1, join="outer")  

2. 后處理操作

# 刪除指定列
res.drop(labels="Unnamed: 0", inplace=True, axis=1)  # 刪除重復列
res = res.loc[:, ~res.columns.duplicated()]  # 修改數據
res.loc[3, "手機型號"] = "小米13"  

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

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

相關文章

hadoop技術棧(九)Hbase替代方案

一、 核心替代方向 ?云原生托管NoSQL服務:? ?Google Cloud Bigtable:? 這是HBase在云端的“官方”替代品,兼容HBase API,底層存儲和架構高度優化,提供高吞吐、低延遲、無縫擴展、完全托管的服務。?如果追求兼容性…

深度解析 DDoS 攻擊:運作機制與防御體系構建?

在網絡安全領域,DDoS(分布式拒絕服務)攻擊始終是企業與機構的 “心腹大患”。它通過操控大量 “傀儡主機” 發起海量請求,直接癱瘓目標服務器或網絡鏈路,導致業務中斷、用戶流失甚至品牌聲譽受損。今天,我們…

在linux系統中下載Andconda

下載前的準備工作 在開始下載 Anaconda 之前,做好充分的準備工作能避免后續出現不必要的麻煩,讓整個過程更加順暢。 確認系統架構 Linux 系統有 32 位和 64 位之分,不同架構對應的 Anaconda 安裝包不同。你可以通過以下命令查看系統架構&a…

學習threejs,使用EffectComposer后期處理組合器(采用RenderPass、UnrealBloomPass、FilmPass渲染通道),實現交互式 3D blob

👨??? 主頁: gis分享者 👨??? 感謝各位大佬 點贊👍 收藏? 留言📝 加關注?! 👨??? 收錄于專欄:threejs gis工程師 文章目錄一、🍀前言1.1 ??THREE.EffectComposer 后期處…

LLM - windows下的Dify離線部署:從鏡像打包到無網環境部署(親測,包含插件部署)

一、離線部署原理 通過Docker的save/load機制實現鏡像的物理介質遷移,配合Docker Compose編排文件的環境適配能力,可在完全斷網的環境中快速部署復雜應用。整個過程分為在線環境準備和離線環境還原兩個階段。 二、在線環境操作 1. 環境準備 在線環境:一臺可以訪問互聯網的…

前端學習之后端小白java的一些理論知識(框架)

一、Spring Framework 和 Spring boot的區別 核心定位 Spring Framework:一個全面的Java應用開發框架,提供核心功能如IoC容器、AOP等Spring Boot:Spring Framework的擴展,專注于簡化Spring應用的初始搭建和開發過程 配置方式 Spri…

K8S的ingress

一。ingress的介紹對于NodePort和LoadBalance,這兩種方法,都有缺點:1.NodePort方式缺點會占用很多集群的端口,當集群服務變多的時候,缺點更加顯著2.LB的缺點就是每一個service都需要一個LB,浪費&#xff0c…

實現自己的AI視頻監控系統-序章

目錄簡介視頻監控系統是什么?該系列課程你會學到什么?需要準備哪些工具?下期預告簡介 在當今快速發展的科技時代,人工智能(AI)已經深入到我們生活的方方面面。其中,AI視頻監控系統作為安防領域…

Pytorch GPU版本安裝保姆級教程

本文將介紹在anaconda環境下安裝pytorch的詳細步驟。 Anaconda安裝教程參考Anaconda安裝保姆級教程。 目錄 一、工具安裝 二、創建虛擬環境 三、安裝Pytorch CUDA Toolkit安裝 Pytorch安裝 總結 一、工具安裝 點擊鏈接官網codetou.com,下載安裝最新版即可&…

重學React(六):脫圍機制二

背景: 話不多說,繼續學習,現在是Effect時間。 前期回顧: 重學React(一):描述UI 重學React(二):添加交互 重學React(三):狀…

【MySQL】索引(B+樹詳解)

MySQL(五)索引 一、索引的減I/O設計 1.讀取量 2.搜索樹 2.1方向 2.2有序 3.分多叉 3.1B樹 弊端: 3.2B樹 3.2.1非葉子-搜索字段 3.2.1.1海量分叉 3.2.1.1.1最大式 3.2.1.1.2最快式 3.2.1.2緩存內存 3.2.1.2.1字段總量小 3.2.1.2.2時間復雜度 3.2.1.3區間搜索向…

GPT-5博士級AI使用教程及國內平替方案

GPT-5博士級AI使用教程及國內平替方案一、GPT-5核心升級:到底強在哪里?1. **統一入口自動思考模式**2. **256K上下文40萬漢字記憶**3. **人格系統長期記憶**4. **編程能力史詩級增強**二、注冊與訪問:國內用戶也能免費上車1.官方渠道&#xf…

云計算-多服務集群部署實戰指南:從JumpServer到Kafka、ZooKeeper 集群部署實操流程

簡介圍繞企業級服務部署與集群搭建,基于 OpenStack 私有云平臺,介紹了一系列關鍵服務的實操過程。內容涵蓋使用 CentOS7 系統部署 JumpServer 堡壘機并對接 controller 與 compute 節點,構建 RabbitMQ 集群(含磁盤節點與內存節點配…

深入剖析Spring IOC容器——原理、源碼與實踐全解析

🌟 你好,我是 勵志成為糕手 ! 🌌 在代碼的宇宙中,我是那個追逐優雅與性能的星際旅人。 ? 每一行代碼都是我種下的星光,在邏輯的土壤里生長成璀璨的銀河; 🛠? 每一個算法都是我繪制…

探秘C語言:數據在內存中的存儲機制詳解

探秘C語言:數據在內存中的存儲機制詳解探秘C語言:數據在內存中的存儲機制詳解一、二進制與進制轉換:數據的不同"外衣"1.1基本概念1.2進制轉換二、整數在內存中的存儲:補碼的奧秘原碼、反碼、補碼總結探秘C語言&#xff…

HTML 常用標簽介紹

目錄 HTML 標簽 HTML 常用標簽速查表 文檔元標簽 頁面結構與布局 文本內容與排版 鏈接與媒體 列表與表格 表單與交互 其他功能標簽 文本結構標簽 文本格式化標簽 列表標簽 鏈接與導航標簽 媒體標簽 容器與結構標簽 表格標簽 表單標簽 元信息與文檔標簽 腳本…

kafka 沖突解決 kafka安裝

目錄 解法方法&#xff1a; 一般情況正常可以版本2.0.2 報錯&#xff1a; File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen…

論文閱讀 2025-8-9 [DiC, DropKey]

閑來沒事&#xff0c;找點近一年的論文看看 1. DiC: Rethinking Conv3x3 Designs in Diffusion Models ? 一句話總結&#xff1a;DiC用沙漏架構稀疏跳躍條件門控重構純Conv3x3擴散模型&#xff0c;在速度碾壓Transformer的同時性能反超&#xff0c;為實時生成任務開辟新路徑。…

16進制pcm數據轉py波形腳本

將16bit的單聲道或者雙聲道的16進制的pcm數據轉成波形圖片出來分析數據&#xff0c;python腳本如下&#xff1a;import numpy as np import matplotlib.pyplot as plt# 1: 單聲道&#xff0c;2&#xff1a;雙聲道 PCM_CHANNELS 2# 你提供的十六進制數據 hex_str ""…

MySQL的鎖:

目錄 鎖的介紹&#xff1a; 并發事務訪問相同數據可以分為以下幾種情況&#xff1a; 都是進行讀操作&#xff1a; 都是進行寫操作&#xff1a; 有讀操作也有寫操作&#xff1a; 讀鎖、寫鎖&#xff1a; 讀鎖&#xff1a; 寫鎖&#xff1a; 按照鎖粒度分類&#xff1a;…