Python pandas庫(kù)自學(xué)超詳細(xì)教程
一、什么是Pandas庫(kù)
(1)、Pandas 應(yīng)用
Pandas 可以從各種文件格式比如 CSV、JSON、SQL、Excel 導(dǎo)入數(shù)據(jù)。
Pandas 可以對(duì)各種數(shù)據(jù)進(jìn)行運(yùn)算操作,比如歸并、再成形、選擇,還有數(shù)據(jù)清洗和數(shù)據(jù)加工特征。
Pandas 廣泛應(yīng)用在學(xué)術(shù)、金融、統(tǒng)計(jì)學(xué)等各個(gè)數(shù)據(jù)分析領(lǐng)域。
(2)、Pandas 功能
Pandas 是數(shù)據(jù)分析的利器,它不僅提供了高效、靈活的數(shù)據(jù)結(jié)構(gòu),還能幫助你以極低的成本完成復(fù)雜的數(shù)據(jù)操作和分析任務(wù)。
Pandas 提供了豐富的功能,包括:
- 數(shù)據(jù)清洗:處理缺失數(shù)據(jù)、重復(fù)數(shù)據(jù)等。
- 數(shù)據(jù)轉(zhuǎn)換:改變數(shù)據(jù)的形狀、結(jié)構(gòu)或格式。
- 數(shù)據(jù)分析:進(jìn)行統(tǒng)計(jì)分析、聚合、分組等。
- 數(shù)據(jù)可視化:通過(guò)整合 Matplotlib 和 Seaborn 等庫(kù),可以進(jìn)行數(shù)據(jù)可視化。
(3)、數(shù)據(jù)結(jié)構(gòu)
Pandas 的主要數(shù)據(jù)結(jié)構(gòu)是 Series (一維數(shù)據(jù))與 DataFrame(二維數(shù)據(jù))。
Series 是一種類似于一維數(shù)組的對(duì)象,它由一組數(shù)據(jù)(各種 Numpy 數(shù)據(jù)類型)以及一組與之相關(guān)的數(shù)據(jù)標(biāo)簽(即索引)組成。
DataFrame 是一個(gè)表格型的數(shù)據(jù)結(jié)構(gòu),它含有一組有序的列,每列可以是不同的值類型(數(shù)值、字符串、布爾型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 組成的字典(共同用一個(gè)索引)。
二、安裝pandas庫(kù)
(1)、在終端中運(yùn)行
pip install pandas
(2)、導(dǎo)入Pandas庫(kù)并重命名為pd
import pandas as pd # 查看pandas版本 print(pd.__version__)
輸出: 2.2.3
三、操作教學(xué)
1.基礎(chǔ)操作
我想存儲(chǔ)一些人的信息和對(duì)應(yīng)的數(shù)據(jù)
import pandas as pd
df = pd.DataFrame(
{
"Name": ["Alice", "Bob", "Charlie"],
"Age": [25, 30, 35],
"City": ["New York", "Los Angeles", "Chicago"]
}
)
print(df)打印的結(jié)果:

DataFrame是一個(gè)二維數(shù)據(jù)結(jié)構(gòu),可以存儲(chǔ) 不同類型的 (包括字符、整數(shù)、浮點(diǎn)值、 分類數(shù)據(jù)等)。它類似于電子表格,每一行都有自己的列標(biāo)簽和值
2.拿取指定列的數(shù)據(jù)
print(df['City'])
打印的結(jié)果:

3.從頭開(kāi)始創(chuàng)建DataFrame
a = pd.Series(["黑色", "紅色", "白色"], name="color") print(a)
打印的結(jié)果:

4.DataFrame的統(tǒng)計(jì)數(shù)據(jù)
df = pd.DataFrame(
{
"Name": ["Alice", "Bob", "Charlie"],
"Age": [25, 30, 35],
"City": ["New York", "Los Angeles", "Chicago"]
}
)
print(df.describe())結(jié)果為:

5.分析csv文件中的數(shù)據(jù)
csv文件內(nèi)容如下:
TABLE_SCHEMA | TABLE_NAME | ENGINE | VERSION | DATA_LENGTH | CREATE_TIME |
information_schema | CHARACTER_SETS | MEMORY | 10 | 0 | 2025/3/10 10:04 |
information_schema | COLLATIONS | MEMORY | 10 | 0 | 2025/3/10 10:04 |
information_schema | COLUMNS | InnoDB | 10 | 16384 |
|
information_schema | COLUMN_PRIVILEGES | MEMORY | 10 | 0 | 2025/3/10 10:04 |
information_schema | ENGINES | MEMORY | 10 | 0 | 2025/3/10 10:04 |
information_schema | EVENTS | InnoDB | 10 | 16384 |
|
information_schema | FILES | MEMORY | 10 | 0 | 2025/3/10 10:04 |
information_schema | GLOBAL_STATUS | MEMORY | 10 | 0 | 2025/3/10 10:04 |
information_schema | GLOBAL_VARIABLES | MEMORY | 10 | 0 | 2025/3/10 10:04 |
information_schema | KEY_COLUMN_USAGE | MEMORY | 10 | 0 | 2025/3/10 10:04 |
只讀取數(shù)據(jù)
df = pd.read_csv("C:/Users/65742/Desktop/tables.csv")
print(df)結(jié)果為:

只想看前幾行的數(shù)據(jù)
df = pd.read_csv("C:/Users/65742/Desktop/tables.csv")
print(df.head(8))結(jié)果為:

分析每列的數(shù)據(jù)類型
df = pd.read_csv("C:/Users/65742/Desktop/tables.csv")
print(df.dtypes)結(jié)果為:

讀取更加詳細(xì)的數(shù)據(jù)
df = pd.read_csv("C:/Users/65742/Desktop/tables.csv")
print(df.info)結(jié)果為:

6.excel表格的操作
與csv同理,讀取方法換成read_excel()這個(gè)就可以了
import xlrd
df = pd.read_excel("C:/Users/65742/Desktop/tables.xls")
print(df)注意: read_excel()需要依賴xlrd模塊,所以需要安裝xlrd。
7.選擇需要的列
df = pd.read_csv("C:/Users/65742/Desktop/tables.csv")
print(df['TABLE_NAME'])結(jié)果為:

需要選擇多個(gè)列直接使用逗號(hào)拼接在中括號(hào)里面就OK了
df = pd.read_csv("C:/Users/65742/Desktop/tables.csv")
print(df[['TABLE_NAME', 'CREATE_TIME']])結(jié)果為:

查看返回?cái)?shù)據(jù)的行數(shù)以及列數(shù)
df = pd.read_csv("C:/Users/65742/Desktop/tables.csv")
print(df[['TABLE_NAME']].shape)結(jié)果為:

請(qǐng)注意,返回的數(shù)據(jù)包括行數(shù)和列數(shù)
篩選固定條件的數(shù)據(jù)
above_0 = df[df["DATA_LENGTH"] > 0] print(above_0)
結(jié)果為:

如果你想檢查數(shù)據(jù)是否大于某個(gè)值:
print(df["DATA_LENGTH"] > 0)
結(jié)果為:

查詢某個(gè)列中的多個(gè)值的數(shù)據(jù)
engine_select = df[df["ENGINE"].isin(['InnoDB', 'MEMORY'])] print(engine_select)
df[]中放置的是列名,isin中放的是感興趣的數(shù)據(jù)
結(jié)果為:

組合多個(gè)條件查詢
new_result = df[(df["ENGINE"] == 'InnoDB') | (df["TABLE_NAME"] == 'FILES')] print(new_result)
結(jié)果為:

如果想驗(yàn)證列中的數(shù)據(jù)是不是空值
create_time_not_na = df[df["CREATE_TIME"].notna()] print(create_time_not_na)
篩選出所有“CREATE_TIME”列不為缺失值(NaN)的行,并將結(jié)果存儲(chǔ)在一個(gè)新的 DataFrame 變量
結(jié)果為:

查詢某列符合條件的數(shù)據(jù),并只取該行的數(shù)據(jù)某一列
table_names = df.loc[df["DATA_LENGTH"] > 0, "TABLE_NAME"] print(table_names)
結(jié)果為:

查詢特定行到特定行,特定列到特定列的數(shù)據(jù)
# 查詢第1到4行,第3到5列的數(shù)據(jù) print(df.iloc[0:4, 2:5])
結(jié)果為:

切記:
選擇數(shù)據(jù)子集時(shí),使用方括號(hào)。[]
在這些括號(hào)內(nèi),您可以使用單個(gè)列/行標(biāo)簽、列表 的列/行標(biāo)簽、標(biāo)簽切片、條件表達(dá)式或 一個(gè)冒號(hào)。
使用行時(shí)選擇特定行和/或列 和列名稱。loc
使用 在表中的位置。iloc
您可以根據(jù) / 為選擇分配新值。lociloc
8.增加列
df = pd.read_excel("C:/Users/65742/Desktop/tables.xls", sheet_name='tables')
print(df)
df["數(shù)據(jù)長(zhǎng)度"] = df["DATA_LENGTH"]*100 # 增加一列
print(df)等號(hào)前面為你要新增加的列名,后面是原本存在的列名,執(zhí)行之后會(huì)幫我們新建一個(gè)列名“數(shù)據(jù)長(zhǎng)度”。
結(jié)果為:

且等號(hào)后面的數(shù)據(jù)是可以和其他類的數(shù)據(jù)運(yùn)算或者直接運(yùn)算的
9.修改列名
df = pd.read_excel("C:/Users/65742/Desktop/tables.xls", sheet_name='tables')
print(df)
c = df.rename(columns={"TABLE_NAME": "表名"})
print(c)columns中鍵值對(duì)里面的key是原表格中的列,value是要替換的列名
結(jié)果為:

修改多個(gè)列的列名
c = df.rename(columns={"TABLE_NAME": "表名", "DATA_LENGTH": "數(shù)據(jù)長(zhǎng)度"})
print(c)結(jié)果為:

10.對(duì)數(shù)據(jù)進(jìn)行分組并計(jì)算平均數(shù)
f = pd.DataFrame({
"name": ["吳昊", '趙括', "李月榮", "吳昊", "李月榮"],
"age": [28, 32, 35, 30, 36],
"gender": ["男", "女", "男", "男", "女"],
"score": [92, 85, 98, 88, 95]
})
print(f[["name","age","score"]].groupby("name").mean())結(jié)果為:

到此這篇關(guān)于Python pandas庫(kù)自學(xué)超詳細(xì)教程的文章就介紹到這了,更多相關(guān)Python pandas庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Opencv常見(jiàn)圖像格式Data Type及代碼實(shí)例
這篇文章主要介紹了Opencv常見(jiàn)圖像格式Data Type及代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5 UI主線程與耗時(shí)線程分離詳細(xì)方法實(shí)例
這篇文章主要介紹了python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5 UI主線程與耗時(shí)線程分離詳細(xì)方法實(shí)例,需要的朋友可以參考下2020-02-02
詳解Python靜態(tài)網(wǎng)頁(yè)爬取獲取高清壁紙
這篇文章主要介紹了Python爬取高清壁紙,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
python如何實(shí)現(xiàn)word批量轉(zhuǎn)HTML
這篇文章主要介紹了python如何實(shí)現(xiàn)word批量轉(zhuǎn)HTML,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-09-09
抵御代碼復(fù)雜性使python函數(shù)更加Pythonic技巧示例詳解
這篇文章主要介紹了抵御代碼復(fù)雜性使python函數(shù)更加Pythonic技巧示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
Python類型標(biāo)注里Optional的實(shí)現(xiàn)
本文主要介紹了Python類型標(biāo)注里Optional的實(shí)現(xiàn),包括與默認(rèn)參數(shù)/可選參數(shù)的關(guān)系,以及在靜態(tài)類型檢查中的注意事項(xiàng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2026-02-02
Python基于OpenCV實(shí)現(xiàn)驗(yàn)證碼字符分割的方案
在自動(dòng)化驗(yàn)證碼識(shí)別流程中,字符分割是連接圖片預(yù)處理與字符識(shí)別的關(guān)鍵環(huán)節(jié),本文將詳細(xì)解析一段基于 OpenCV 的驗(yàn)證碼分割代碼,該代碼通過(guò)灰度處理、邊緣優(yōu)化、輪廓檢測(cè)等步驟,精準(zhǔn)提取驗(yàn)證碼中的單個(gè)字符,需要的朋友可以參考下2025-10-10
Pytorch搭建簡(jiǎn)單的卷積神經(jīng)網(wǎng)絡(luò)(CNN)實(shí)現(xiàn)MNIST數(shù)據(jù)集分類任務(wù)
這篇文章主要介紹了Pytorch搭建簡(jiǎn)單的卷積神經(jīng)網(wǎng)絡(luò)(CNN)實(shí)現(xiàn)MNIST數(shù)據(jù)集分類任務(wù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03

