關于Pandas的Series創(chuàng)建方式和常用屬性
1、list、ndarray、Series的簡單比較
① list列表,列表中的元素可以是不同的數(shù)據(jù)類型,使用從0開始的整數(shù)值作為默認索引;
② ndarray數(shù)組,數(shù)組中的元素必須是同種數(shù)據(jù)類型,也是使用從0開始的整數(shù)值作為默認索引;
③ Series序列,是一種一維的結構,類似于一維列表和ndarray中的一維數(shù)組,但是功能比他們要更為強大,Series由兩部分組成:索引index和數(shù)值values;
④ 一維列表和一維數(shù)組中都是采用從0開始的整數(shù)值作為默認索引,索引值一般不顯示的給出,但是我們可以通過索引去獲取其中的元素。對于Series來說,默認索引也是從0開始的整數(shù)值作為默認索引,但是是顯示地給出,更為強大的是,Series中的索引可以隨意設置,方便我們取數(shù)。
操作如下:
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條結論:
⑤ 創(chuàng)建Series序列時,當不指定索引的時候,默認會生成從0開始的整數(shù)索引;當指定了“字符串索引”(也叫“標簽索引”),既可以通過這個字符串索引訪問元素,也可以通過原有的從0開始的整數(shù)索引訪問元素;當指定一個“整數(shù)索引”,那么該索引會覆蓋掉原有的默認的整數(shù)索引,只能通過這個新的整數(shù)索引訪問元素,默認的整數(shù)索引會失效。
2、Series的5種常用創(chuàng)建方式
- 語法:創(chuàng)建Series的語法:pd.Series()
- 常用參數(shù):index,用于指定新的索引;dtype,用于指定元素的數(shù)據(jù)類型;
- 大前提:要記住Series是一個一維的結構?。?!
- 注意:當你指定了索引,系統(tǒng)會使用這個指定索引;當你沒有指定索引,系統(tǒng)會默認給我們創(chuàng)建索引。
1)通過一維列表創(chuàng)建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)通過可迭代對象創(chuàng)建Series
x = range(2,7) y = pd.Series(x) display(y)
結果如下:
3)通過字典創(chuàng)建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)通過一維數(shù)組創(chuàng)建Series
x = np.arange(1,6) y = pd.Series(x) display(y)
結果如下:
5)通過標量(常數(shù))創(chuàng)建Series
x = 22 y1 = pd.Series(x) display(y1) y2 = pd.Series(x,index=list(range(5))) display(y2)
結果如下:
注意:創(chuàng)建一個含有相同元素的Series,元素的個數(shù)取決于我們設置的索引的個數(shù)。
3、Series中常用屬性說明
1)Series和ndarray中常用屬性對比
* ndim 返回Series的維數(shù); * shape 返回Series的形狀; * dtype 返回Series中元素的數(shù)據(jù)類型; * size 返回Series中元素的個數(shù); * itemsize 返回Series中每一個元素占用空間的大小, 以字節(jié)為單位; * nbytes 返回Series中所有元素占用空間的大小, 以字節(jié)為單位; * T 返回Series的轉置結果; #注意:下面這3個屬性,在Series中才有。 * index 返回Series中的索引; * values 返回Series中的數(shù)值; * name 返回Series的名稱 或 返回Series索引的名稱;
* ndim 返回數(shù)組的維數(shù); * shape 返回數(shù)組的形狀; * dtype 返回數(shù)組元素的數(shù)據(jù)類型; * size 返回數(shù)組中元素的個數(shù); * itemsize 返回數(shù)組中每一個元素占用空間的大小,以字節(jié)為單位; * nbytes 返回數(shù)組中所有元素占用空間的大小,以字節(jié)為單位; * T 返回數(shù)組元素的轉置結果;
操作如下:
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;
2)Series中特有的幾個屬性:index、values、name
① index和values屬性
x = pd.Series([1,3,5,7,9]) display(x) display(x.index) display(x.values)
結果如下:
② name屬性:動態(tài)創(chuàng)建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)
結果如下:
③ 在創(chuàng)建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的時候,會得到很好的體現(xiàn)。
如果多個series放在了一起,那么必然可以構建成一個dataframe,那么每個series的名稱就是構成當前這個dataframe的column。(仔細先體會這段話)
下面,我們先用一個簡單的例子,說明一下Serie名稱的作用。
從上圖中可以看出,In[6]我們先創(chuàng)建了一個dataframe,這個dataframe可以看作是由三個Series堆積而成的。In[8]我們選取了其中一列,那么得到的就是一個Series, In[9]我們獲取這個Series的name,可以看出結果就是該列的column列名。
到此這篇關于關于Pandas的Series創(chuàng)建方式和常用屬性的文章就介紹到這了,更多相關Pandas的Series創(chuàng)建方式內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
PHP webshell檢查工具 python實現(xiàn)代碼
Web安全應急響應中,不免要檢查下服務器上是否被上傳了webshell,手工檢查比較慢,就寫了個腳本來檢查了。Windows平臺下已經有了lake2寫的雷克圖的了,一般的檢查也夠用了,寫了個Linux下面的,用python寫的。2009-09-09