Pandas(Serises)

導包

import pandas as pd

import numpy as np

from pandas import Series,DataFrame

一.Series

1.Series的創建

Series是一種類似與一維數組的對象,由下面兩個部分組成:
values:一組數據(ndarray類型)
index:相關的數據索引標籤

創建Series
兩種創建方式:
1:
由列表或numpy數組創建,默認索引爲0-n-1

obj=Series([1,2,3,4])    #默認索引從0開始
obj

0    1
1    2
2    3
3    4
dtype: int64

obj2=Series([1,2,3,4],index=['a','b','c','d'])   #自主定義索引
obj2

a    1
b    2
c    3
d    4
dtype: int64

由narray創建的是引用,而不是副本。
對series元素的改變也會改變原來narray的值(列表不存在這種情況)

a=np.array([1,2,3,4])
obj=Series(a,index=['a','b','c','d'])
obj

a    1
b    2
c    3
d    4
dtype: int64

obj['d']=0    #對Series元素的改變,影響narray自身的改變

a

array([1, 2, 3, 0])

2:由字典創建

obj=Series({'a':1,"b":2})

obj

a    1
b    2
dtype: int64

練習1:
使用多種方法創建以下Series,命名爲sss: 語文 150 數學 150 英語 150 理綜 300

#1由np.narray創建
ss=np.array([150,150,150,300])
sss=Series(ss,index=['語文','數學','英語','理綜'])
sss

#法二:由字典創建
sss=Series({'語文':150,'數學':150,'英語':150,'理綜':300})
sss

2)Series的索引和切片
可以使用中括號取單個索引(此時返回的是元素類型),或者中括號裏一個列表取多個索引(此時返回的仍然是一個Series類型)。分爲顯示索引和隱式索引:
(1) 顯式索引:
- 使用index中的元素作爲索引值
- 使用.loc[](推薦)
注意,此時是開區間

sss['語文']

150

sss['語文':'英語']

語文    150
數學    150
英語    150
dtype: int64

(2) 隱式索引:
- 使用整數作爲索引值
- 使用.iloc[](推薦)
注意,此時是半開區間

sss[0:2]

sss.iloc[0:2]

練習2:
使用多種方法對練習1創建的Series sss進行索引和切片:
索引: 數學 150
切片: 語文 150 數學 150 英語 150

索引:sss['數學']

切片:sss.iloc[0:3]#sss[0:3]

3)Series的基本概念
可以把Series看成一個定長的有序字典
可以通過shape,size,index,values等得到series的屬性

head(),tail()查看數據內容head()默認爲前5個,tail()默認爲後5 個數據

可以使用pd.isnull(),pd.notnull(),或自帶isnull(),notnull()函數檢測缺失數據

pd.isnull(obj)#obj.isnull()   #查看是否爲空值

pd.notnull(obj)#obj.notnull()  #查看是否不爲空

Series對象本身及其索引都有一個name屬性

4)Series的運算
(1) 適用於numpy的數組運算也適用於Series

obj+2

obj[obj>1]

(2) Series之間的運算
在運算中自動對齊不同索引的數據
如果索引不對應,則補NaN

若要保留所有的index,則需要使用add()/sub()/mul()/div()/函數  內部添加fill_value=0

A = pd.Series([2,4,6],index=[0,1,2])
B = pd.Series([1,3,5],index=[1,2,3])
display(A,B)

A.add(B,fill_value=0)




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章