pandas---Series基礎使用
阿新 • • 發佈:2019-02-02
匯入pandas
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
pandas基本資料結構
- pandas中主要有兩種資料結構,分別是:Series和DataFrame。
- Series:一種類似於一維陣列的物件,是由一組資料(各種NumPy資料型別)以及一組與之相關的資料標籤(即索引)組成。僅有一組資料也可以產生簡單的Series物件。注意:Series中的索引值是可以重複的。
- DataFrame:一個表格型的資料結構,包含有一組有序的列,每列可以是不同的值型別(數值,字串,布林型等),DataFrame即有行索引也有列索引,可以被看做是由Series組成的字典。
Series的建立方式
通過一維陣列去建立
arr = np.array([1,2,3,4]) ser1 = Series(arr) ser1.values #獲得值組成的一維陣列 ser1.index #獲得索引值的描述,start,stop,step ser1.index=['a', 'b','c','d'] #更改索引值 ser1['b'] # 索引形式獲取某值 ser1[1] # 下標形式獲取某值
直接建立series陣列
ser2 = Series([99,100,98,10],index=['a', 'b','c','d']) ser22 = Series(data=[89
通過字典形式建立
dict1 = {'a':1,'b':2,'c':3,'d':4} ser3 = Series(dict1) # 字典的鍵對應ser的索引,字典的值對應ser的資料
注意:
1. 索引可以建立時賦值,也可以後期賦值
2. 索引可以重複,下標不能重複
3. 字典本身鍵和值有對應關係,字典的鍵不能重複
Series值的獲取
- Series值的獲取主要有以下兩種方式:
1.通過方括號+索引的方式讀取對應的索引的資料,有可能返回多條資料
2. 通過方括號+下標 - Series獲取多個值的方式樂視NumPy中的ndarray的切片操作,通過方括號+下標值/索引值+冒號(:)的形式來擷取series物件中的一部分資料
注意:
在獲取多個值的時候,
通過下標形式加冒號獲取,和切片一樣是左閉右開區間,
通過索引值加冒號獲取,是獲取一個完全閉合區間值
Series的運算
- NumPy中的陣列運算,在Series中都保留了,均可以使用,並且Series進行陣列運算的時候,索引與值之間的對映關係不會發生改變。
- 注意:其實在操作Series的時候,基本上可以把Series看出NumPy中的ndarray陣列來進行操作。ndarray陣列的絕大多數操作都可以應用到Series上。
ser3+1
ser3-100
ser3*100
ser3/100
ser3%100
ser3//100
np.abs(ser3) ## numpy中的通用函式在Series中是支援的
Series缺失值檢測
定義新的索引值時,對於不存在的索引和存在的索引的預設補齊操作
ss = Series({'a':1,'b':2,'c':3,'d':4,'e':5}) ss_index = ['a','bb','cc','d','e','f','g','h','i'] ss_new = Series(ss,index=ss_index)
a 1.0 bb NaN cc NaN d 4.0 e 5.0 f NaN g NaN h NaN i NaN dtype: float64
注意:自動對齊:鍵值關係不會發生改變。如果鍵無法對應,返回NaN值填充
對陣列中的NaN值過濾
##過濾NaN值 pd.isnull(ss_new) #返回布林值的陣列,NaN 返回True pd.notnull(ss_new) #返回布林值的陣列 Not NaN 返回True ss_new[pd.notnull(ss_new)]
注意:pandas中的isnull和notnull兩個函式可以用於在Series中檢測缺失值,這兩個函式的返回值時一個布林型別的Series
兩個預設補齊的陣列相互操作時,按照索引對應關係進行操作
s1 = Series([1,2,3],index=['a','b','c']) s2 = Series([10,20,30],index=['b','a','c','d']) s1 + s2
注意:按照索引的形式找到與之相匹配的資料進行對應操作
Series別名
- name屬性
s1.name=u'價格' ## 資料名稱標籤
s1.index.name=u'產品' ## 索引名稱標籤
本文來自北風網的學習總結