<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Series是一種類似於一維陣列的物件,是由一組資料(各種NumPy資料型別)以及一組與之相關的資料標籤(即索引)組成。僅由一組資料也可產生簡單的Series物件
Series 總的來說就是帶標籤的一維陣列,可儲存整數、浮點數、字串、Python物件等型別的資料。標籤軸通常叫做索引。
用一維陣列範例化Series時,索引長度必須與陣列長度一致。沒有指定索引時,Pandas會幫我們建立預設的數值型索引。
In [1]: s1 = pd.Series([1, 2, 3, 4]) Out[1]: 0 1 1 2 2 3 3 4 dtype: int64 In [2]: s2 = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) Out[2]: a 1 b 2 c 3 d 4 dtype: int64
注意: Pandas 是支援重複索引的。但我們也可以重置索引,具體操作方法在後續章節中會給出。
使用字典範例化Series時, 如果未傳入索引,則索引的值為字典的key:
In [1]: pd.Series({'i': 0, 'j': 1, 'k': 2}) Out[1]: i 0 j 1 k 2 dtype: int64
使用標量值範例化時,必須提供索引。Series 按索引長度重複該標量值。
In [1]: pd.Series(6, index=[0, 1, 2]) Out[1]: 0 6 1 6 2 6 dtype: int64
在範例化Series時,可以傳入name引數為Series新增name屬性。同時,Seires也支援重新命名:
In [1]: s = pd.Series(6, index=[0, 1, 2], name='six') Out[1]: 0 6 1 6 2 6 Name: six, dtype: int64 In [2]: s.name Out[2]: 'six' In [3]: s = s.rename('sixsixsix') In [4]: s.name Out[4]: 'sixsixsix'
Series提供了類似於Python列表的切片方式:
In[0]: s = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) In[1]: s[0:2] #取下標為0和1的兩個資料(不包括2,也就是從第一個開始取,取兩個資料) Out[1]: a 1 b 2 dtype: int64 In[2]: s[:3] #取前三個資料 Out[2]: a 1 b 2 c 3 dtype: int64 In[3]: s[-2:] #取最後兩個資料(也可以理解為從倒查第二個資料一直取到末尾) Out[3]: c 3 d 4 dtype: int64 In[4]: s[[0,2,3]] #取第1、3、4這個三個資料(注意下標是從0開始的,轉換為位置時需+1) Out[4]: a 1 c 3 d 4 dtype: int64 #注意:如果輸入的位置大於列表的長度則會報出「indexers are out-of-bounds」異常
Series可使用索引標籤的值來提取值:
In [0]:s = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) In [1]: s['a'] #提取s中,標籤為a的值 Out[1]: a 1 dtype: int64 In [1]: s[['a', 'b', 'c']] #提取s中,標籤為a, b, c的值 Out[1]: a 1 b 2 c 3 dtype: int64
如果傳入的索引標籤的值不在Seires的軸索引中,那將會報 KeyError 異常,這裡建議大家使用Series的 get 方法獲取值,如果不存在,則會返回None,同時也可設定default引數,用於不存在時的預設返回值。
In [0]: s = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) In [1]: s['f'] #提取s中,標籤為f的值, f不存在,將會報出異常 Out[1]:KeyError In [2]:s.get('f') #提取s中,標籤為f的值, 若f不存在,預設返回None Out[2]:None In [3]:s.get('f'. default=-1) #提取s中,標籤為f的值, 若f不存在,返回-1 Out[3]:-1
In[0]: s = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) In[1]: s[s < 2] #提取s中,小於2的值 Out[1]: a 1 b 2 dtype: int64 In[1]: s[s> s.mean()] #提取s中,大於平均數的值 Out[1]: c 3 d 4 dtype: int64 In[1]: s[s.between(1, 3, inclusive=False)] #提取s中,值介於1,3之間的資料(不包含1,3) Out[1]: b 2 dtype: int64
在提取區間資料時,如果想讓兩端的值包含其中(滿足兩端的值也被提取出來),只需要把 inclusive 引數的值賦為True
Series 不用迴圈也可以像操作單個數值一樣快速進行數學運算:
In[0]: s = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) In[1]: s + s Out[1]: a 2 b 4 c 6 d 8 dtype: int64 In[2]: s - 1 Out[2]: a 0 b 1 c 2 d 3 dtype: int64
Series 之間的操作會自動 基於標籤 對齊資料. 如果一個Series中的標籤在另一個Series中不存在,那麼計算得到的結果將是NaN,即缺失值,有缺失值NaN的處理在後續章節也會講到。因此,我們不用顧及執行操作的Series是否有相同的標籤。 Pandas資料結構整合的資料對齊的功能,是Pandas區別於大多數標籤型資料處理工具的重要特性。
In[0]: s1 = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) In[0]: s2 = pd.Series([3, 6, 11], index=['a', 'b', 'f']) In[1]: s1 + s2 Out[1]: a 4.0 b 8.0 c NaN d NaN f NaN dtype: float64
到此這篇關於Pandas資料結構之Series的使用的文章就介紹到這了,更多相關Pandas Series使用內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45