↑ 關注 + 星標 ~ 有趣的不像個技術號
每晚九點,我們準時相約
大家好,我是黃同學
今天給大家介紹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的具體用法,可以參考之前的一篇文章去了解
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蹲,numpy蹲,numpy蹲完,pandas蹲
朱小五