Series(一):Series的創建方式和常用屬性說明

↑ 關注 + 星標 ~ 有趣的不像個技術號

每晚九點,我們準時相約  


大家好,我是黃同學

今天給大家介紹Series的創建方式和常用屬性說明。

1、list、ndarray、Series的簡單比較

① list列表,列表中的元素可以是不同的數據類型,使用從0開始的整數值作爲默認索引;

② ndarray數組,數組中的元素必須是同種數據類型,也是使用從0開始的整數值作爲默認索引;

③ Series序列,是一種一維的結構,類似於一維列表和ndarray中的一維數組,但是功能比他們要更爲強大,Series由兩部分組成:索引index和數值values;

④ 一維列表和一維數組中都是採用從0開始的整數值作爲默認索引,索引值一般不顯示的給出,但是我們可以通過索引去獲取其中的元素。對於Series來說,默認索引也是從0開始的整數值作爲默認索引,但是是顯示地給出,更爲強大的是,Series中的索引可以隨意設置,方便我們取數。

操作如下:

 import numpy as np
 import pandas as pd

 l1 = [1,2,"中國",4.5]
 display(l1)
 display(l1[2])

 a1 = np.array([1,2,5,6,8])
 display(a1)
display(a1[4])

s1 = pd.Series([1,3,5,7,9])
display(s1)
display(s1[4])

s2 = pd.Series([1,3,5,7,9],index=["a","b","c","d","e"])
display(s2)
display(s2["d"])
display(s2[3])

s3 = pd.Series([1,3,5,7,9],index=[3,4,5,6,7])
display(s3)
display(s3[6])

結果如下:

通過上述測試,我們可以總結出來這第5條結論:

⑤ 創建Series序列時,當不指定索引的時候,默認會生成從0開始的整數索引;當指定了“字符串索引”(也叫“標籤索引”),既可以通過這個字符串索引訪問元素,也可以通過原有的從0開始的整數索引訪問元素;當指定一個“整數索引”,那麼該索引會覆蓋掉原有的默認的整數索引,只能通過這個新的整數索引訪問元素,默認的整數索引會失效。

2、Series的5種常用創建方式

  • 語法:創建Series的語法:pd.Series()

  • 常用參數:index,用於指定新的索引;dtype,用於指定元素的數據類型;

  • 大前提:要記住Series是一個一維的結構!!!

  • 注意:當你指定了索引,系統會使用這個指定索引;當你沒有指定索引,系統會默認給我們創建索引。

1)通過一維列表創建Series

x = [1,3,5,7,9]
y = pd.Series(x)
display(y)

y1 = pd.Series(x,index=["a","b","c","d","e"],dtype=np.float32)
display(y1)

結果如下:

2)通過可迭代對象創建Series

x = range(2,7)
y = pd.Series(x)
display(y)

結果如下:

3)通過字典創建Series

x = dict(a=22,b=18,c=35)
y = pd.Series(x)
display(y)

x1 = pd.Series({"a":1,"b":2,"c":3})
display(x1)

結果如下:

4)通過一維數組創建Series

x = np.arange(1,6)
y = pd.Series(x)
display(y)

結果如下:

5)通過標量(常數)創建Series

x = 22

y1 = pd.Series(x)
display(y1)

y2 = pd.Series(x,index=list(range(5)))
display(y2)

結果如下:

注意:創建一個含有相同元素的Series,元素的個數取決於我們設置的索引的個數。

3、Series中常用屬性說明

1)Series和ndarray中常用屬性對比

 * ndim          返回Series的維數;
 * shape         返回Series的形狀;
 * dtype         返回Series中元素的數據類型;
 * size          返回Series中元素的個數;
 * itemsize      返回Series中每一個元素佔用空間的大小,
                 以字節爲單位;
 * nbytes        返回Series中所有元素佔用空間的大小,
                 以字節爲單位;
 * T             返回Series的轉置結果;

#注意:下面這3個屬性,在Series中才有。
* index         返回Series中的索引;
* values        返回Series中的數值;
* name          返回Series的名稱  或  返回Series索引的名稱;
* ndim          返回數組的維數;
* shape         返回數組的形狀;
* dtype         返回數組元素的數據類型;
* size          返回數組中元素的個數;
* itemsize      返回數組中每一個元素佔用空間的大小,以字節爲單位;
* nbytes        返回數組中所有元素佔用空間的大小,以字節爲單位;
* T             返回數組元素的轉置結果;

操作如下:

s = pd.Series([1,3,5,7,9])
display(s)

display(s.ndim)
display(s.shape)
display(s.dtype)
display(s.size)
display(s.itemsize)
display(s.nbytes)
display(s.T)

結果如下:

注意:

① 由於Series是一維的結構,因此Series的ndim的值肯定是1;

② 關於itemsize還有nbytes的具體用法,可以參考之前的一篇文章去了解

《手撕numpy(二):各種特性和簡單操作》

2)Series中特有的幾個屬性:index、values、name

① index和values屬性

x = pd.Series([1,3,5,7,9])
display(x)

display(x.index)
display(x.values)

結果如下:

② name屬性:動態創建Serie名稱和Series索引名稱

x = pd.Series([1,3,5,7,9])
display(x)

x.name = "Series的名稱"
x.index.name= "Series索引的名稱"
display(x)

display(x.name)
display(x.index.name)

結果如下:

③ 在創建Series的時候,指定Series名稱

y = pd.Series([1,3,5,7,9],index=["a","b","c","d","e"],name="Series的名稱")
display(y)

display(y.index.name)
display(y.name)

結果如下:

注意:目前可能看不出來,指定這個索引名稱的好處在哪裏,這個在學習DataFrame的時候,會得到很好的體現。

如果多個series放在了一起,那麼必然可以構建成一個dataframe,那麼每個series的名稱就是構成當前這個dataframe的column。(仔細先體會這段話)

下面,我們先用一個簡單的例子,說明一下Serie名稱的作用。

從上圖中可以看出,In[6]我們先創建了一個dataframe,這個dataframe可以看作是由三個Series堆積而成的。In[8]我們選取了其中一列,那麼得到的就是一個Series,  In[9]我們獲取這個Series的name,可以看出結果就是該列的column列名。

近期文章,點擊圖片即可查看

後臺回覆關鍵詞「進羣」,即刻加入讀者交流羣~

numpy蹲,numpynumpy完,pandas

朱小五

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章