溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

pandas 數(shù)據(jù)結(jié)構(gòu)之Series的使用方法

發(fā)布時(shí)間:2020-10-01 15:50:18 來源:腳本之家 閱讀:140 作者:Amei1314 欄目:開發(fā)技術(shù)

1. Series

Series 是一個(gè)類數(shù)組的數(shù)據(jù)結(jié)構(gòu),同時(shí)帶有標(biāo)簽(lable)或者說索引(index)。

1.1 下邊生成一個(gè)最簡單的Series對象,因?yàn)闆]有給Series指定索引,所以此時(shí)會(huì)使用默認(rèn)索引(從0到N-1)。

# 引入Series和DataFrame
In [16]: from pandas import Series,DataFrame
In [17]: import pandas as pd

In [18]: ser1 = Series([1,2,3,4])

In [19]: ser1
Out[19]: 
0  1
1  2
2  3
3  4
dtype: int64

1.2 當(dāng)要生成一個(gè)指定索引的Series 時(shí)候,可以這樣:  

# 給index指定一個(gè)list
In [23]: ser2 = Series(range(4),index = ["a","b","c","d"])

In [24]: ser2
Out[24]: 
a  0
b  1
c  2
d  3
dtype: int64

1.3 也可以通過字典來創(chuàng)建Series對象

In [45]: sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}

In [46]: ser3 = Series(sdata)
# 可以發(fā)現(xiàn),用字典創(chuàng)建的Series是按index有序的
In [47]: ser3
Out[47]: 
Ohio   35000
Oregon  16000
Texas   71000
Utah    5000
dtype: int64

在用字典生成Series的時(shí)候,也可以指定索引,當(dāng)索引中值對應(yīng)的字典中的值不存在的時(shí)候,則此索引的值標(biāo)記為Missing,NA,并且可以通過函數(shù)(pandas.isnull,pandas.notnull)來確定哪些索引對應(yīng)的值是沒有的。 

In [48]: states = ['California', 'Ohio', 'Oregon', 'Texas']

In [49]: ser3 = Series(sdata,index = states)

In [50]: ser3
Out[50]: 
California    NaN
Ohio     35000.0
Oregon    16000.0
Texas     71000.0
dtype: float64
# 判斷哪些值為空
In [51]: pd.isnull(ser3)
Out[51]: 
California   True
Ohio     False
Oregon    False
Texas     False
dtype: bool

In [52]: pd.notnull(ser3)
Out[52]: 
California  False
Ohio      True
Oregon     True
Texas     True
dtype: bool

1.4 訪問Series中的元素和索引:

# 訪問索引為"a"的元素
In [25]: ser2["a"]
Out[25]: 0
# 訪問索引為"a","c"的元素
In [26]: ser2[["a","c"]]
Out[26]: 
a  0
c  2
dtype: int64
# 獲取所有的值
In [27]: ser2.values
Out[27]: array([0, 1, 2, 3])
# 獲取所有的索引
In [28]: ser2.index
Out[28]: Index([u'a', u'b', u'c', u'd'], dtype='object')

1.5 簡單運(yùn)算

在pandas的Series中,會(huì)保留NumPy的數(shù)組操作(用布爾數(shù)組過濾數(shù)據(jù),標(biāo)量乘法,以及使用數(shù)學(xué)函數(shù)),并同時(shí)保持引用的使用

In [34]: ser2[ser2 > 2]
Out[34]: 
a  64
d   3
dtype: int64

In [35]: ser2 * 2
Out[35]: 
a  128
b   2
c   4
d   6
dtype: int64

In [36]: np.exp(ser2)
Out[36]: 
a  6.235149e+27
b  2.718282e+00
c  7.389056e+00
d  2.008554e+01
dtype: float64

1.6 Series的自動(dòng)對齊

Series的一個(gè)重要功能就是自動(dòng)對齊(不明覺厲),看看例子就明白了。 差不多就是不同Series對象運(yùn)算的時(shí)候根據(jù)其索引進(jìn)行匹配計(jì)算。

# ser3 的內(nèi)容
In [60]: ser3
Out[60]: 
Ohio   35000
Oregon  16000
Texas   71000
Utah    5000
dtype: int64
# ser4 的內(nèi)容
In [61]: ser4
Out[61]: 
California    NaN
Ohio     35000.0
Oregon    16000.0
Texas     71000.0
dtype: float64
# 相同索引值的元素相加
In [62]: ser3 + ser4
Out[62]: 
California     NaN
Ohio      70000.0
Oregon     32000.0
Texas     142000.0
Utah        NaN
dtype: float64

1.7 命名

Series對象本身,以及索引都有一個(gè) name 屬性

In [64]: ser4.index.name = "state"

In [65]: ser4.name = "population"

In [66]: ser4
Out[66]: 
state
California    NaN
Ohio     35000.0
Oregon    16000.0
Texas     71000.0
Name: population, dtype: float64

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI