Pandas中Series的屬性,方法,常用操作使用案例
包的引入:
import numpy as np import pandas as pd
1. Series 對(duì)象的創(chuàng)建
1.1 創(chuàng)建一個(gè)空的 Series 對(duì)象
s = pd.Series() print(s) print(type(s))
1.2 通過列表創(chuàng)建一個(gè) Series 對(duì)象
需要傳入一個(gè)列表序列
l = [1, 2, 3, 4] s = pd.Series(l) print(s) print('-'*20) print(type(s))
1.3 通過元組創(chuàng)建一個(gè) Series 對(duì)象
需要傳入一個(gè)元組序列
t = (1, 2, 3) s = pd.Series(t) print(s) print('-'*20) print(type(s))
1.4 通過字典創(chuàng)建一個(gè) Series 對(duì)象
需要傳入一個(gè)字典
m = {'zs': 12, 'ls': 23, 'ww': 22} s = pd.Series(m) print(s) print('-'*20) print(type(s))
1.5 通過 ndarray 創(chuàng)建一個(gè) Series 對(duì)象
需要傳入一個(gè) ndarray
ndarr = np.array([1, 2, 3]) s = pd.Series(ndarr) print(s) print('-'*20) print(type(s))
1.6 創(chuàng)建 Series 對(duì)象時(shí)指定索引
index:用于設(shè)置 Series 對(duì)象的索引
age = [12, 23, 22, 34] name = ['zs', 'ls', 'ww', 'zl'] s = pd.Series(age, index=name) print(s) print('-'*20) print(type(s))
1.7 通過一個(gè)標(biāo)量(數(shù))創(chuàng)建一個(gè) Series 對(duì)象
num = 999 s = pd.Series(num, index=[1, 2, 3, 4]) print(s) print('-'*20) print(type(s))
ndarr = np.arange(0, 10, 2) s = pd.Series(5, index=ndarr) print(s) print('-'*20) print(type(s))
2. Series 的屬性
2.1 values ---- 返回一個(gè) ndarray 數(shù)組
l = [11, 22, 33, 44] s = pd.Series(l) print(s) print('-'*20) ndarr = s.values print(ndarr) print('-'*20) print(type(ndarr))
2.2 index ---- 返回 Series 的索引序列
d = {'zs': 12, 'ls': 23, 'ww': 35} s = pd.Series(d) print(s) print('-'*20) idx = s.index print(idx) print('-'*20) print(type(idx))
2.3 dtype ---- 返回 Series 中元素的數(shù)據(jù)類型
d = {'zs': 12, 'ls': 23, 'ww': 35} s = pd.Series(d) print(s) print('-'*20) print(s.dtype)
2. 4 size ---- 返回 Series 中元素的個(gè)數(shù)
d = {'zs': 12, 'ls': 23, 'ww': 35} s = pd.Series(d) print(s) print('-'*20) print(s.size)
2.5 ndim ---- 返回 Series 的維數(shù)
d = {'zs': 12, 'ls': 23, 'ww': 35} s1 = pd.Series(d) print(s1) print('-'*20) print(s1.ndim) l = [[1, 1], [2, 2], [3, 3]] s2 = pd.Series(l) print(s2) print('-'*20) print(s2.ndim)
2.6 shape ---- 返回 Series 的維度
d = {'zs': 12, 'ls': 23, 'ww': 35} s1 = pd.Series(d) print(s1) print('-'*20) print(s1.shape) print() l = [[1, 1], [2, 2], [3, 3]] s2 = pd.Series(l) print(s2) print('-'*20) print(s2.shape)
3. Series 的方法
3.1 mean() ---- 求算術(shù)平均數(shù)
l = [12, 23, 24, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s) print() print(s.mean())
3.2 min() max() ---- 求最值
l1 = [12, 23, 24, 34] s1 = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s1) print() print(s1.max()) print(s1.min()) print() l2 = ['ac', 'ca', 'cd', 'ab'] s2 = pd.Series(l2) print(s2) print() print(s2.max()) print(s2.min())
3.3 argmax() argmin() idxmax() idxmin() ---- 獲取最值索引
l1 = [12, 23, 24, 34] s1 = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s1) print() # argmax() -- 最大值的數(shù)字索引 # idxmax() -- 最大值的標(biāo)簽索引 # 兩個(gè)都不支持字符串類型的數(shù)據(jù) print(s1.max(), s1.argmax(), s1.idxmax()) print(s1.min(), s1.argmin(), s1.idxmin())
3.4 median() ---- 求中位數(shù)
l = [12, 23, 24, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s) print() print(s.median())
3.5 value_counts() ---- 求頻數(shù)
l = [12, 23, 24, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s) print() print(s.value_counts())
3.6 mode() ---- 求眾數(shù)
l = [12, 23, 24, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s) print() print(s.mode()) print() l = [12, 23, 24, 34, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl', 'zq']) print(s) print() print(s.mode())
3.7 quantile() ---- 求四分位數(shù)
四分位數(shù):把數(shù)值從小到大排列并分成四等分,處于三個(gè)分割點(diǎn)位置的數(shù)值就是四分位數(shù)。
需要傳入一個(gè)列表,列表中的元素為要獲取的數(shù)的對(duì)應(yīng)位置
l = [1, 1, 2, 2, 3, 3, 4, 4] s = pd.Series(l) print(s) print() print(s.quantile([0, .25, .50, .75, 1]))
3.8 std() ---- 標(biāo)準(zhǔn)差
總體標(biāo)準(zhǔn)差是反映研究總體內(nèi)個(gè)體之間差異程度的一種統(tǒng)計(jì)指標(biāo)。
總體標(biāo)準(zhǔn)差計(jì)算公式:
由于總體標(biāo)準(zhǔn)差計(jì)算出來會(huì)偏小,所以采用 ( n − d d o f ) (n-ddof) (n−ddof)的方式適當(dāng)擴(kuò)大標(biāo)準(zhǔn)差,即樣本標(biāo)準(zhǔn)差。
樣本標(biāo)準(zhǔn)差計(jì)算公式:
l = [1, 1, 2, 2, 3, 3, 4, 4] s = pd.Series(l) print(s) print() # 總體標(biāo)準(zhǔn)差 print(s.std()) print() print(s.std(ddof=1)) print() # 樣本標(biāo)準(zhǔn)差 print(s.std(ddof=2))
3.9 describe() ---- 統(tǒng)計(jì) Series 的常見統(tǒng)計(jì)學(xué)指標(biāo)結(jié)果
l = [1, 1, 2, 2, 3, 3, 4, 4] s = pd.Series(l) print(s) print() print(s.describe())
3.10 sort_values() ---- 根據(jù)元素值進(jìn)行排序
ascending:True為升序(默認(rèn)),F(xiàn)alse為降序 3.10.1 升序
l = [4, 2, 1, 3] s = pd.Series(l) print(s) print() s = s.sort_values() print(s)
3.10.2 降序
l = [4, 2, 1, 3] s = pd.Series(l) print(s) print() s = s.sort_values(ascending=False) print(s)
3.11 sort_index() ---- 根據(jù)索引值進(jìn)行排序
ascending:True為升序(默認(rèn)),F(xiàn)alse為降序
3.11.2 升序
l = [12, 23, 24, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s) print() s = s.sort_index() print(s)
3.11.2 降序
l = [12, 23, 24, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s) print() s = s.sort_index() print(s)
3.12 apply() ---- 根據(jù)傳入的函數(shù)參數(shù)處理 Series 對(duì)象
需要傳入一個(gè)函數(shù)參數(shù)
# x 為當(dāng)前遍歷到的元素 def func(x): if (x%2==0): return x+1 else: return x l = [12, 23, 24, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s) print() # 調(diào)用 apply 方法,會(huì)將 Series 中的每個(gè)元素帶入 func 函數(shù)中進(jìn)行處理 s = s.apply(func) print(s)
3.13 head() ---- 查看 Series
對(duì)象的前 x 個(gè)元素 需要傳入一個(gè)數(shù) x ,表示查看前 x 個(gè)元素,默認(rèn)為前5個(gè)
l = [12, 23, 24, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s) print() # head(x) 查看 Series 對(duì)象的前 x 個(gè)元素 print(s.head(2))
3.14 tail() ---- 查看 Series 對(duì)象的后 x 個(gè)元素
需要傳入一個(gè)數(shù) x ,表示查看后 x 個(gè)元素,默認(rèn)為后5個(gè)
l = [12, 23, 24, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s) print() # tail(x) 查看 Series 對(duì)象的后 x 個(gè)元素 print(s.tail(2))
4. Series 的常用操作
4.1 Series 對(duì)象的數(shù)據(jù)訪問
4.1.1 使用數(shù)字索引進(jìn)行訪問
4.1.1.1 未自定義索引
l = [12, 23, 24, 34] s = pd.Series(l) print(s) print() print(s[0]) print() print(s[1:-2]) print() print(s[::2]) print() print(s[::-1])
4.1.1.2 自定義索引
l = [12, 23, 24, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s) print() print(s[0]) print() print(s[1:-2]) print() print(s[::2]) print() print(s[::-1])
4.1.2 使用自定義標(biāo)簽索引進(jìn)行訪問
l = [12, 23, 24, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s) print() print(s['zs']) print() # 自定義標(biāo)簽索引進(jìn)行切片包含開始與結(jié)束位置 print(s['ls':'zl']) print() print(s['zs':'zl':2]) print() # 注意切邊范圍的方向與步長(zhǎng)的方向 print(s['zl':'zs':-1])
4.1.3 使用索引掩碼進(jìn)行訪問
l = [12, 23, 24, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s) print() idx = (s%2==0) print(idx) print() # 索引掩碼(也是一個(gè)數(shù)組) # 索引掩碼個(gè)數(shù)與原數(shù)組的個(gè)數(shù)一致,數(shù)組每個(gè)元素都與索引掩碼中的元素一一對(duì)應(yīng) # 數(shù)組每個(gè)元素都對(duì)應(yīng)著索引掩碼中的一個(gè)True或False # 只有索引掩碼中為True所對(duì)應(yīng)元素組中的元素才會(huì)被選中 print(s[idx])
4.1.4 一次性訪問多個(gè)元素
l = [12, 23, 24, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s) print() # 選出指定索引對(duì)應(yīng)的元素 print(s[['zs', 'ww']]) print() print(s[[1, 2]])
4.2 Series 對(duì)象數(shù)據(jù)元素的刪除
4.2.1 pop()
傳入要?jiǎng)h除元素的標(biāo)簽索引
l = [12, 23, 24, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s) print() s.pop('ww') print(s)
4.2.2 drop()
傳入要?jiǎng)h除元素的標(biāo)簽索引
l = [12, 23, 24, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s) print() # drop() 會(huì)返回一個(gè)刪除元素后的新數(shù)組,不會(huì)對(duì)原數(shù)組進(jìn)行修改 s = s.drop('zs') print(s)
4.3 Series 對(duì)象數(shù)據(jù)元素的修改
4.3.1 通過標(biāo)簽索引進(jìn)行修改
l = [12, 23, 24, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s) print() s['zs'] = 22 print(s)
4.3.2 通過數(shù)字索引進(jìn)行修改
l = [12, 23, 24, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s) print() s[1] = 22 print(s)
4.4 Series 對(duì)象數(shù)據(jù)元素的添加
4.4.1 通過標(biāo)簽索引添加
l = [12, 23, 24, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s) print() s['ll'] = 22 print(s)
4.4.2 append()
需要傳入一個(gè)要添加到原 Series 對(duì)象的 Series 對(duì)象
l = [12, 23, 24, 34] s = pd.Series(l, index=['zs', 'ls', 'ww', 'zl']) print(s) print() # 可以添加已經(jīng)存在的索引及其值 s2 = pd.Series([11, 13], index=['zs', 'wd']) # append() 不會(huì)對(duì)原數(shù)組進(jìn)行修改 s = s.append(s2) print(s) print() print(s['zs'])
到此這篇關(guān)于Pandas中Series的屬性,方法,常用操作使用案例的文章就介紹到這了,更多相關(guān)Pandas中Series屬性內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一文詳解如何使用Python實(shí)時(shí)輸出鼠標(biāo)坐標(biāo)
本文詳細(xì)介紹了如何使用Python中的pynput庫來實(shí)時(shí)獲取并輸出鼠標(biāo)的坐標(biāo)信息,通過pynput庫,可以輕松實(shí)現(xiàn)對(duì)鼠標(biāo)坐標(biāo)的跟蹤,適用于需要鼠標(biāo)交互的應(yīng)用場(chǎng)景,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10Python設(shè)置在shell腳本中自動(dòng)補(bǔ)全功能的方法
今天小編就為大家分享一篇Python設(shè)置在shell腳本中自動(dòng)補(bǔ)全功能的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06python-Web-flask-視圖內(nèi)容和模板知識(shí)點(diǎn)西寧街
在本篇文章里小編給大家分享了關(guān)于python-Web-flask-視圖內(nèi)容和模板的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們參考學(xué)習(xí)下。2019-08-08openCV實(shí)踐項(xiàng)目之銀行卡卡號(hào)識(shí)別功能
最近在惡補(bǔ)opencv,在前期不太那么認(rèn)真的學(xué)習(xí)狀態(tài)下,著手搞了一下這個(gè)小項(xiàng)目實(shí)戰(zhàn),基于模板匹配下的銀行卡卡號(hào)識(shí)別,下面這篇文章主要給大家介紹了關(guān)于openCV實(shí)踐項(xiàng)目之銀行卡卡號(hào)識(shí)別功能的相關(guān)資料,需要的朋友可以參考下2022-11-11關(guān)于numpy.where()函數(shù) 返回值的解釋
今天小編就為大家分享一篇關(guān)于numpy.where()函數(shù) 返回值的解釋,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12python中的psutil模塊詳解(cpu、內(nèi)存、磁盤情況、結(jié)束指定進(jìn)程)
這篇文章主要介紹了python中的psutil(cpu、內(nèi)存、磁盤情況、結(jié)束指定進(jìn)程),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04Pytorch中的variable, tensor與numpy相互轉(zhuǎn)化的方法
這篇文章主要介紹了Pytorch中的variable, tensor與numpy相互轉(zhuǎn)化的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10