pandas中Series的代碼實(shí)例解析
pandas中Series的創(chuàng)建
引用數(shù)據(jù)庫
import pandas as pd s=pd.Series( data, index, dtype, copy,name)
參數(shù)名稱 | 描述 |
data | 輸入的數(shù)據(jù),可以是列表、常量、ndarray 數(shù)組等。 |
index | 索引值必須是惟一的,如果沒有傳遞索引,則默認(rèn)為 np.arrange(n)。 |
dtype | dtype表示數(shù)據(jù)類型,如果沒有提供,則會(huì)自動(dòng)判斷得出。 |
copy | 表示對 data 進(jìn)行拷貝,默認(rèn)為 False。 |
name | 接收string或list。表示Series對象的名稱。默認(rèn)為None |
1)用python中的列表list創(chuàng)建:
import pandas as pd my_list=[1,2,3,4] my_Series=pd.Series(my_list) print(my_list)
輸出結(jié)果如下:
0 1
1 2
2 3
3 4
dtype: int64
2)用numpy數(shù)組創(chuàng)建
import pandas as pd import numpy as np my_array=np.array([1,2,3,4]) s=pd.Series(my_array) print(s)
輸出結(jié)果如下:
0 1
1 2
2 3
3 4
dtype: int32
3)用python中的字典dict創(chuàng)建:
import pandas as pd data = {'a' : 0., 'b' : 1., 'c' : 2.} s = pd.Series(data) print(s)
輸出結(jié)果如下:
a 0.0
b 1.0
c 2.0
dtype: float64
4)標(biāo)量創(chuàng)建Series對象:
如果 data 是標(biāo)量值,則必須提供索引,示例如下:
import pandas as pd s = pd.Series(5, index=[0, 1, 2, 3]) print(s)
輸出如下:
0 5
1 5
2 5
3 5
dtype: int64
5)為index參數(shù)傳遞索引:
以上面的dict方法舉例:
import pandas as pd data = {'a' : 0., 'b' : 1., 'c' : 2.} s = pd.Series(data,index=['b','c','d','a']) print(s)
輸出結(jié)果如下:
b 1.0
c 2.0
d NaN
a 0.0
dtype: float64
其中需要注意的是索引沒有匹配值時(shí)會(huì)返回NAN值
pandas中Series的訪問
# 訪問Series中數(shù)據(jù)的兩種方法 import pandas as pd s1 = pd.Series([ 75, 90, 61],index=['張三', '李四', '陳五']) print(s1[0]) #通過元素儲(chǔ)存位置訪問 print(s1['張三']) #通過指定索引訪問 # 結(jié)果均為 75
1)切片操作
數(shù)據(jù)切片的概念源于Numpy數(shù)組,Series對象使用類似NumPy中ndarray的數(shù)據(jù)訪問方法實(shí)現(xiàn)切片操作。
#Series的切片操作 import pandas as pd s1 = pd.Series([ 75, 90, 61, 59],index=['a', 'b', 'c', 'd']) s1[1:3]
2) 通過bool數(shù)組訪問Series數(shù)據(jù)
import pandas as pd import numpy as np my_array=np.array([1,2,3,4]) s=pd.Series(my_array,['a','b','c','d']) print(s) print(s[s.index>'a'])
輸出:
a 1
b 2
c 3
d 4
dtype: int32
b 2
c 3
d 4
dtype: int32
3)數(shù)據(jù)修改
可以直接通過賦值的方法修改Series中的對應(yīng)值。
# 修改Series中的值 import pandas as pd s1 = pd.Series([ 75, 90, 61],index=['張三', '李四', '陳五']) s1['張三'] = 60 #通過指定索引訪問 s1[1] = 60 #通過元素儲(chǔ)存位置訪問 print(s1)
輸出數(shù)據(jù):
張三 60
李四 60
陳五 61
dtype: int64
4)算術(shù)運(yùn)算
Pandas會(huì)根據(jù)索引index索引對相應(yīng)數(shù)據(jù)進(jìn)行計(jì)算。如代碼所示,可以直接對Series結(jié)構(gòu)進(jìn)行加減乘除運(yùn)算符,當(dāng)出現(xiàn)index不匹配的情況時(shí)會(huì)輸出NaN。
import pandas as pd sr1 = pd.Series([1, 2, 3, 4],['a','b','c','d']) sr2 = pd.Series([1, 5, 8, 9],['a','c','e','f']) print(sr2 - sr1)
輸出:
a 0.0
b NaN
c 2.0
d NaN
e NaN
f NaN
dtype: float64
pandas中Series的常用屬性
名稱 | 屬性 |
axes | 以列表的形式返回所有行索引標(biāo)簽。 |
dtype | 返回對象的數(shù)據(jù)類型。 |
empty | 返回一個(gè)空的 Series 對象。 |
ndim | 返回輸入數(shù)據(jù)的維數(shù)。 |
size | 返回輸入數(shù)據(jù)的元素?cái)?shù)量。 |
values | 以 ndarray 的形式返回 Series 對象。 |
index | 返回一個(gè)RangeIndex對象,用來描述索引的取值范圍。 |
- values : 以 ndarray 的形式返回 Series 對象。
import pandas as pd import numpy as np s = pd.Series(np.random.randn(6)) print(s) print("輸出series中數(shù)據(jù)") print(s.values)
輸出:
0 -0.502100
1 0.696194
2 -0.982063
3 0.416430
4 -1.384514
5 0.444303
dtype: float64
輸出series中數(shù)據(jù)
[-0.50210028 0.69619407 -0.98206327 0.41642976 -1.38451433 0.44430257]
- axes: 以列表的形式返回所有行索引標(biāo)簽。
import pandas as pd import numpy as np s = pd.Series(np.random.randn(5)) print ("The axes are:") print(s.axes)
輸出:
The axes are:
[RangeIndex(start=0, stop=5, step=1)]
Series常用方法
1)統(tǒng)計(jì)方法
2)追加Series和插入單個(gè)值
類似list,通過append方法能夠在原Series上插入(追加)新的Series。若只在原Series上插入單個(gè)值,則采用賦值方式即可
import pandas as pd list1 = [0, 1, 2, 3, 4] series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e']) series1 = pd.Series([4, 5], index = ['f', 'g']) # 追加Series print('在series插入series1后為:\n', series.append(series1))
輸出:
在series插入series1后為:
a 3
b 1
c 2
d 3
e 4
f 4
g 5
dtype: int64
3)刪除Series元素
import pandas as pd list1 = [0, 1, 2, 3, 4] series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e']) series.drop('e', inplace = True) print( series)
輸出:
a 0
b 1
c 2
d 3
dtype: int64
4)unique()與nunique()的用法
unique()返回去重后的元素值
import pandas as pd list1 = [0, 1, 2, 4, 4] series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e']) print(series.unique())
輸出:
[0 1 2 4]
nunique()返回去重后的元素個(gè)數(shù)
import pandas as pd list1 = [0, 1, 2, 4, 4] series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e']) print(series.nunique())
輸出:
4
value_counts(),求不同元素的個(gè)數(shù)
import pandas as pd list1 = [0, 1, 2, 4, 4] series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e']) print(series.value_counts())
輸出:
4 2
0 1
1 1
2 1
dtype: int64
value_counts(),求不同元素的個(gè)數(shù)
import pandas as pd list1 = [0, 1, 2, 4, 4] series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e']) print(series.value_counts())
輸出:
4 2
0 1
1 1
2 1
dtype: int64
到此這篇關(guān)于pandas中Series的代碼實(shí)例解析的文章就介紹到這了,更多相關(guān)pandas的Series實(shí)例內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python3安裝及pip3報(bào)ERROR:No?matching?distribution?found?for解
這篇文章主要給大家介紹了關(guān)于python3安裝及pip3報(bào)ERROR:No?matching?distribution?found?for解決的相關(guān)資料,文中通過代碼以及圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08解決Python中字符串和數(shù)字拼接報(bào)錯(cuò)的方法
相信很多的新手朋友都會(huì)碰到python連接字符串和數(shù)字的問題,因?yàn)閜ython是強(qiáng)類型的語言,如果你把一個(gè)字符串和數(shù)字直接做連接的操作的話,就會(huì)直接報(bào)錯(cuò)的,今天就給大家說下字符串和數(shù)字拼接的問題,有需要的朋友們可以參考借鑒。2016-10-10Python實(shí)現(xiàn)識別花卉種類的示例代碼
“無窮小亮的科普日?!苯?jīng)常會(huì)發(fā)布一些鑒定網(wǎng)絡(luò)熱門生物視頻,既科普了生物知識,又滿足觀眾們的獵奇心理。今天我們也來用Python鑒定一下網(wǎng)絡(luò)熱門植物2022-04-04Python+OpenCV實(shí)現(xiàn)旋轉(zhuǎn)文本校正方式
今天小編就為大家分享一篇Python+OpenCV實(shí)現(xiàn)旋轉(zhuǎn)文本校正方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01python logging 重復(fù)寫日志問題解決辦法詳解
這篇文章主要介紹了python logging 重復(fù)寫日志問題解決辦法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08淺析Python中將單詞首字母大寫的capitalize()方法
這篇文章主要介紹了淺析Python中將單詞首字母大寫的capitalize()方法,是Python入門中的基礎(chǔ)知識,需要的朋友可以參考下2015-05-05