pandas 數(shù)據(jù)結構之Series的使用方法
1. Series
Series 是一個類數(shù)組的數(shù)據(jù)結構,同時帶有標簽(lable)或者說索引(index)。
1.1 下邊生成一個最簡單的Series對象,因為沒有給Series指定索引,所以此時會使用默認索引(從0到N-1)。
# 引入Series和DataFrame In [16]: from pandas import Series,DataFrame In [17]: import pandas as pd In [18]: ser1 = Series([1,2,3,4]) In [19]: ser1 Out[19]: 0 1 1 2 2 3 3 4 dtype: int64
1.2 當要生成一個指定索引的Series 時候,可以這樣:
# 給index指定一個list In [23]: ser2 = Series(range(4),index = ["a","b","c","d"]) In [24]: ser2 Out[24]: a 0 b 1 c 2 d 3 dtype: int64
1.3 也可以通過字典來創(chuàng)建Series對象
In [45]: sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
In [46]: ser3 = Series(sdata)
# 可以發(fā)現(xiàn),用字典創(chuàng)建的Series是按index有序的
In [47]: ser3
Out[47]:
Ohio 35000
Oregon 16000
Texas 71000
Utah 5000
dtype: int64
在用字典生成Series的時候,也可以指定索引,當索引中值對應的字典中的值不存在的時候,則此索引的值標記為Missing,NA,并且可以通過函數(shù)(pandas.isnull,pandas.notnull)來確定哪些索引對應的值是沒有的。
In [48]: states = ['California', 'Ohio', 'Oregon', 'Texas'] In [49]: ser3 = Series(sdata,index = states) In [50]: ser3 Out[50]: California NaN Ohio 35000.0 Oregon 16000.0 Texas 71000.0 dtype: float64 # 判斷哪些值為空 In [51]: pd.isnull(ser3) Out[51]: California True Ohio False Oregon False Texas False dtype: bool In [52]: pd.notnull(ser3) Out[52]: California False Ohio True Oregon True Texas True dtype: bool
1.4 訪問Series中的元素和索引:
# 訪問索引為"a"的元素 In [25]: ser2["a"] Out[25]: 0 # 訪問索引為"a","c"的元素 In [26]: ser2[["a","c"]] Out[26]: a 0 c 2 dtype: int64 # 獲取所有的值 In [27]: ser2.values Out[27]: array([0, 1, 2, 3]) # 獲取所有的索引 In [28]: ser2.index Out[28]: Index([u'a', u'b', u'c', u'd'], dtype='object')
1.5 簡單運算
在pandas的Series中,會保留NumPy的數(shù)組操作(用布爾數(shù)組過濾數(shù)據(jù),標量乘法,以及使用數(shù)學函數(shù)),并同時保持引用的使用
In [34]: ser2[ser2 > 2] Out[34]: a 64 d 3 dtype: int64 In [35]: ser2 * 2 Out[35]: a 128 b 2 c 4 d 6 dtype: int64 In [36]: np.exp(ser2) Out[36]: a 6.235149e+27 b 2.718282e+00 c 7.389056e+00 d 2.008554e+01 dtype: float64
1.6 Series的自動對齊
Series的一個重要功能就是自動對齊(不明覺厲),看看例子就明白了。 差不多就是不同Series對象運算的時候根據(jù)其索引進行匹配計算。
# ser3 的內容 In [60]: ser3 Out[60]: Ohio 35000 Oregon 16000 Texas 71000 Utah 5000 dtype: int64 # ser4 的內容 In [61]: ser4 Out[61]: California NaN Ohio 35000.0 Oregon 16000.0 Texas 71000.0 dtype: float64 # 相同索引值的元素相加 In [62]: ser3 + ser4 Out[62]: California NaN Ohio 70000.0 Oregon 32000.0 Texas 142000.0 Utah NaN dtype: float64
1.7 命名
Series對象本身,以及索引都有一個 name 屬性
In [64]: ser4.index.name = "state" In [65]: ser4.name = "population" In [66]: ser4 Out[66]: state California NaN Ohio 35000.0 Oregon 16000.0 Texas 71000.0 Name: population, dtype: float64
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Python中.py文件和.ipynb文件的區(qū)別詳解
Python開發(fā)者常用的兩種文件格式.py和.ipynb各有特點,本教程將通過對比分析、代碼示例和場景說明,幫助開發(fā)者全面理解二者的區(qū)別與聯(lián)系,需要的朋友可以參考下2025-04-04
如何在sae中設置django,讓sae的工作環(huán)境跟本地python環(huán)境一致
這篇文章主要介紹了如何在sae中設置django,讓sae的工作環(huán)境跟本地python環(huán)境一致,需要的朋友可以參考下2017-11-11
Pygame游戲開發(fā)之太空射擊實戰(zhàn)敵人精靈篇
相信大多數(shù)8090后都玩過太空射擊游戲,在過去游戲不多的年代太空射擊自然屬于經典好玩的一款了,今天我們來自己動手實現(xiàn)它,在編寫學習中回顧過往展望未來,下面開始講解敵人精靈的使用2022-08-08
Python+OpenCV數(shù)字圖像處理之ROI區(qū)域的提取
ROI區(qū)域又叫感興趣區(qū)域。在機器視覺、圖像處理中,從被處理的圖像以方框、圓、橢圓、不規(guī)則多邊形等方式勾勒出需要處理的區(qū)域,稱為感興趣區(qū)域,ROI。本文主要為大家介紹如何通過Python+OpenCV提取ROI區(qū)域,需要的朋友可以了解一下2021-12-12

