Python中的pandas模塊詳解
概述
在上一節(jié),我們介紹了Python的numpy模塊,包括:多維數(shù)組、數(shù)組索引、數(shù)組操作、數(shù)學(xué)函數(shù)、線性代數(shù)、隨機(jī)數(shù)生成等內(nèi)容。在這一節(jié),我們將介紹Python的pandas模塊。pandas模塊是Python編程語(yǔ)言中用于數(shù)據(jù)處理和分析的強(qiáng)大模塊,它提供了許多用于數(shù)據(jù)操作和清洗的函數(shù),使得數(shù)據(jù)處理和分析變得更為簡(jiǎn)單和直觀。
在Python中使用pandas模塊,需要先安裝pandas庫(kù)??梢酝ㄟ^(guò)pip命令進(jìn)行安裝:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas。安裝完成后,就可以在Python腳本中導(dǎo)入pandas模塊,并使用其函數(shù)和方法了。
Series
Series是一個(gè)一維數(shù)組,它不僅包含數(shù)據(jù),還包含索引。Series可以被看作是一個(gè)字典,其中的索引是鍵,值是數(shù)據(jù)。每個(gè)索引只有一個(gè)對(duì)應(yīng)的值,因此Series可以被看作是具有標(biāo)簽化的數(shù)值數(shù)據(jù)。
import pandas as pd # 創(chuàng)建一個(gè)Series s = pd.Series([1, 2, 3, 4, 5]) # 輸出: # 0 1 # 1 2 # 2 3 # 3 4 # 4 5 # dtype: int64 print(s)
上面的示例代碼創(chuàng)建了一個(gè)包含五個(gè)整數(shù)的Series,默認(rèn)情況下,它的索引是從0開(kāi)始的整數(shù)。
當(dāng)然,我們也可以提供一個(gè)列表作為Series的索引和值。
import pandas as pd # 創(chuàng)建一個(gè)帶有自定義索引和值的Series index = ['C', 'S', 'D', 'N', 'P'] s = pd.Series([1, 2, 3, 4, 5], index = index) # 輸出: # C 1 # S 2 # D 3 # N 4 # P 5 # dtype: int64 print(s)
我們還可以直接使用字典創(chuàng)建帶有自定義數(shù)據(jù)標(biāo)簽的數(shù)據(jù),pandas會(huì)自動(dòng)把字典的鍵作為數(shù)據(jù)標(biāo)簽,字典的值作為相對(duì)應(yīng)的數(shù)據(jù)。
import pandas as pd
# 創(chuàng)建一個(gè)帶有自定義索引和值的Series
s = pd.Series({'C': 1, 'S': 2, 'D': 3, 'N': 4, 'P': 5})
# 輸出:
# C 1
# S 2
# D 3
# N 4
# P 5
# dtype: int64
print(s)如果想訪問(wèn)Series里的數(shù)據(jù),也非常簡(jiǎn)單,直接使用中括號(hào)加數(shù)據(jù)標(biāo)簽的方式即可。
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5])
# 訪問(wèn)第二個(gè)元素,輸出:3
print(s[2])
s = pd.Series({'C': 1, 'S': 2, 'D': 3, 'N': 4, 'P': 5})
# 訪問(wèn)Key值為'D'的元素,輸出:3
print(s['D'])使用Series,結(jié)合pandas強(qiáng)大的數(shù)據(jù)對(duì)齊功能,可以讓我們快速對(duì)數(shù)據(jù)進(jìn)行分析和處理。
import pandas as pd
s1 = pd.Series({'Red': 1, 'Blue': 2, 'Green': 3})
s2 = pd.Series({'Red': 100, 'Blue': 200, 'Green': 300})
s = s1 + s2
# 將兩個(gè)Series進(jìn)行相加,輸出:
# Red 101
# Blue 202
# Green 303
# dtype: int64
print(s)
s1 = pd.Series({'Red': 1, 'Blue': 2, 'Green': 3, 'White': 4})
s2 = pd.Series({'Red': 100, 'Blue': 200, 'Green': 300})
s = s1 + s2
# 數(shù)據(jù)標(biāo)簽不相同的數(shù)據(jù),運(yùn)算后結(jié)果是NaN,輸出:
# Blue 202.0
# Green 303.0
# Red 101.0
# White NaN
# dtype: float64
print(s)
# 數(shù)據(jù)標(biāo)簽不相同的數(shù)據(jù),調(diào)用add函數(shù),可以設(shè)置默認(rèn)填充值,輸出:
# Blue 202.0
# Green 303.0
# Red 101.0
# White 4.0
# dtype: float64
s = s1.add(s2, fill_value = 0)
print(s)DataFrame
DataFrame是一個(gè)二維的表格型數(shù)據(jù)結(jié)構(gòu),類(lèi)似于Excel或數(shù)據(jù)庫(kù)中的表。DataFrame中的數(shù)據(jù)可以是不同的數(shù)據(jù)類(lèi)型,比如:整數(shù)、浮點(diǎn)數(shù)、字符串、布爾值等。
import pandas as pd
# 創(chuàng)建DataFrame
data = {'Name': ['Jack', 'Tank', 'John'], 'Age': [20, 21, 19]}
df = pd.DataFrame(data)
# 輸出:
# Name Age
# 0 Jack 20
# 1 Tank 21
# 2 John 19
print(df)使用DataFrame,我們可以很方便地對(duì)表中的行、列進(jìn)行增刪改查等操作。使用df['column_name']可以查看指定列的數(shù)據(jù);使用df.iloc[row_number]可以查看指定行的數(shù)據(jù);使用df.loc[row_label]可以基于標(biāo)簽訪問(wèn)指定行的數(shù)據(jù);使用df[condition]可以篩選出滿足條件的數(shù)據(jù):使用df['new_column'] = values可以添加一個(gè)新列;使用del df['column_name']可以刪除一列。
import pandas as pd
# 創(chuàng)建DataFrame
data = {'Name': ['Jack', 'Tank', 'John'], 'Age': [20, 21, 19]}
df = pd.DataFrame(data)
# 輸出:
# Name Age
# 0 Jack 20
# 1 Tank 21
# 2 John 19
print(df)
df = pd.DataFrame(data, index = ['First', 'Second', 'Third'])
# 指定自定義索引,輸出:
# Name Age
# First Jack 20
# Second Tank 21
# Third John 19
print(df)
# 訪問(wèn)列數(shù)據(jù),輸出:
# First Jack
# Second Tank
# Third John
# Name: Name, dtype: object
print(df['Name'])
# 根據(jù)行索引訪問(wèn)行數(shù)據(jù),輸出:
# Name John
# Age 19
# Name: Third, dtype: object
print(df.iloc[2])
# 根據(jù)行標(biāo)簽訪問(wèn)行數(shù)據(jù),輸出:
# Name John
# Age 19
# Name: Third, dtype: object
print(df.loc['Third'])
df['Age'] = [22, 18, 20]
# 修改列數(shù)據(jù),輸出:
# Name Age
# First Jack 22
# Second Tank 18
# Third John 20
print(df)
df['Gender'] = ['M', 'F', 'F']
# 新增列數(shù)據(jù),輸出:
# Name Age Gender
# First Jack 22 M
# Second Tank 18 F
# Third John 20 F
print(df)
del df['Gender']
# 刪除列數(shù)據(jù),輸出:
# Name Age
# First Jack 22
# Second Tank 18
# Third John 20
print(df)
# 篩選出年齡大于20的數(shù)據(jù),輸出:
# Name Age
# First Jack 22
print(df[df['Age'] > 20])數(shù)據(jù)讀取和寫(xiě)入
使用pandas,可以方便地讀取和寫(xiě)入各種數(shù)據(jù)格式,比如:CSV、Excel、SQL數(shù)據(jù)庫(kù)等。我們以CSV文件的讀寫(xiě)為例,來(lái)理解CSV表格數(shù)據(jù)的讀取和寫(xiě)入。
import pandas as pd
# 創(chuàng)建DataFrame
data = {'Name': ['Jack', 'Tank', 'John'], 'Age': [20, 21, 19]}
df = pd.DataFrame(data)
# 將DataFrame寫(xiě)入CSV文件
df.to_csv('output.csv', index = False)在上面的示例代碼中,我們首先創(chuàng)建了一個(gè)名為df的DataFrame,然后使用to_csv函數(shù)將其寫(xiě)入一個(gè)名為output.csv的CSV文件中。我們將index參數(shù)設(shè)置為False,以避免將DataFrame的索引寫(xiě)入CSV文件。
to_csv函數(shù)還有其他一些可選參數(shù),包括:
sep:用于指定CSV文件中的分隔符,默認(rèn)是逗號(hào)。
header:用于指定是否將DataFrame的列名寫(xiě)入CSV文件中,默認(rèn)為T(mén)rue。
encoding:用于指定文件的編碼格式,默認(rèn)為UTF-8。
compression:用于指定文件的壓縮格式,默認(rèn)為None。
在下面的示例代碼中,我們讀取了上面保存的名為output.csv的CSV文件,并將其轉(zhuǎn)化為一個(gè)pandas DataFrame。
import pandas as pd
# 從CSV文件讀取
df = pd.read_csv('output.csv')
# 輸出:
# Name Age
# 0 Jack 20
# 1 Tank 21
# 2 John 19
print(df)read_csv函數(shù)還有其他一些可選參數(shù),包括:
sep:指定分隔符,默認(rèn)為逗號(hào)。
header:指定行號(hào)作為列名,默認(rèn)為0。
index_col:將一列或多列設(shè)為DataFrame的索引。
usecols:返回的列的子集,可以是一個(gè)列表或函數(shù)。
dtype:為每一列設(shè)置數(shù)據(jù)類(lèi)型。
skiprows:跳過(guò)指定的行數(shù)或行號(hào)。
na_values:用于識(shí)別空值的字符串或字符串列表。
keep_default_na:是否保留默認(rèn)的識(shí)別空值的字符串。
到此這篇關(guān)于 Python中的pandas模塊的文章就介紹到這了,更多相關(guān) Python pandas模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python?manage.py?createsuperuser運(yùn)行錯(cuò)誤問(wèn)題解決
這篇文章主要介紹了python?manage.py?createsuperuser運(yùn)行錯(cuò)誤,本文給大家分享錯(cuò)誤復(fù)現(xiàn)及解決方案,感興趣的朋友一起看看吧2023-10-10
python接入GoogleAuth的實(shí)現(xiàn)
經(jīng)常會(huì)用到GoogleAuth作為二次驗(yàn)證碼,本文主要介紹了python接入GoogleAuth的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08
Pytorch pth 格式轉(zhuǎn)ONNX 格式的詳細(xì)過(guò)程
PyTorch 訓(xùn)練的模型,需要在Jetson nano 上部署,jetson 原生提供了TensorRT 的支持,所以一個(gè)比較好的方式是把它轉(zhuǎn)換成ONNX 格式,然后在通過(guò)ONNX 轉(zhuǎn)換成TensorRT 格式,這篇文章主要介紹了Pytorch pth 格式轉(zhuǎn)ONNX 格式,需要的朋友可以參考下2023-05-05
基于Python編寫(xiě)一個(gè)Markdown轉(zhuǎn)EPUB電子書(shū)生成工具
在數(shù)字閱讀時(shí)代,EPUB格式已成為電子書(shū)的主流標(biāo)準(zhǔn),本文將為大家詳細(xì)介紹如何使用Python和wxPython構(gòu)建一個(gè)簡(jiǎn)潔實(shí)用的Markdown轉(zhuǎn)EPUB轉(zhuǎn)換工具,有需要的小伙伴可以了解下2026-01-01
Python入門(mén)指南之代碼注釋的三種寫(xiě)法詳解
本文詳細(xì)介紹了Python中的三種代碼注釋方式及其最佳實(shí)踐,主要內(nèi)容包括單行注釋?zhuān)?),多行注釋?zhuān)?apos;''或""")和文檔字符串(docstring),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2026-06-06
Python輕松實(shí)現(xiàn)添加、隱藏和刪除幻燈片的操作詳解
Free?Spire.Presentation?是一個(gè)專(zhuān)業(yè)的演示文稿處理工具,下面我們來(lái)看看如何使用它實(shí)現(xiàn)在?Python?中添加、隱藏和刪除幻燈片的使用技巧,讓你的?PPT?處理變成快捷且高效2025-12-12
Python讀寫(xiě)文件(文本/二進(jìn)制)的方法詳解與實(shí)戰(zhàn)
文件操作是?Python?編程中最常見(jiàn)的基礎(chǔ)技能之一,本文將帶你深入理解?Python?中文件操作的核心方法,例如打開(kāi)與關(guān)閉文件和讀取與寫(xiě)入文本文件等,下面我們就來(lái)簡(jiǎn)單介紹一下吧2025-11-11
Python類(lèi)和實(shí)例的屬性機(jī)制原理詳解
這篇文章主要介紹了Python類(lèi)和實(shí)例的屬性機(jī)制原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Matplotlib實(shí)戰(zhàn)之柱狀圖繪制詳解
柱狀圖,是一種使用矩形條,對(duì)不同類(lèi)別進(jìn)行數(shù)值比較的統(tǒng)計(jì)圖表,這篇文章主要為大家詳細(xì)介紹了如何使用Matplotlib繪制柱狀圖,需要的可以參考下2023-08-08

