關於Pandas
Pandas庫基於Numpy庫,提供了不少用於數據操做與分析的功能。數組
1.安裝與使用
安裝:
pip install pandas
根據慣例,咱們使用以下的方式引入pandas:import pandas as pd
兩個經常使用數據類型:
pandas提供兩個經常使用的數據類型:
• Series
• DataFrame函數
In [1]:
import pandas as pd 大數據
2.Series類型
Series類型相似於Numpy的一維數組對象,能夠將該類型看作是一組數據與數據相關的標籤(索引)聯合而構成(帶有標籤的一維數組對象)。
1.建立方式
Series經常使用的建立(初始化)方式:
• 列表等可迭代對象
• ndarray數組對象
• 字典對象
• 標量對象
In [3]:索引
s=pd.Series({"a":10,"b":20,"c":30})
print(s)ip
a 10
b 20
c 30
dtype: int64內存
2.相關屬性
• index
• values
• shape
• size
• dtype
Series對象能夠經過index與values訪問索引與值。其中,咱們也能夠經過修改index屬性來修改Series的索引。說明:
• 若是沒有指定索引,則會自動生成從0開始的整數值索引,也可使用index顯式指定索引。
• 當數值較多時,能夠經過head與tail訪問前 / 後N個數據。
• Series對象的數據只能是一維數組類型。數據分析
In [10]:pandas
s=pd.Series([1,2,3],index=[2,3,4])pip
print(s.shape) # size都是用來顯示series中有多少個元素的
(3,)
3.Series相關操做
Series在操做上,與Numpy數據具備以下的類似性:
• 支持廣播與矢量化運算。
• 支持索引與切片。
• 支持整數數組與布爾數組提取元素。
1.運算
Series類型也支持矢量化運算與廣播操做。計算規則與Numpy數組的規則相同。同時,Numpy的一些函數,也適用於Series類型,例如,np.mean,np.sum等。
多個Series運算時,會根據索引進行對齊。當索引沒法匹配時,結果值爲NaN(缺失值)。說明:
• 咱們能夠經過pandas或Series的isnull與notnull來判斷數據是否缺失。
• 除了運算符之外,咱們也可使用Series對象提供的相關方法進行運算【能夠指定缺失的填充值】。
• 儘管Numpy的一些函數,也適用於Series類型,但Series與ndarray數組對於空值NaN的計算處理方式上是不一樣的。【Numpy的計算,會獲得NaN,而Series會忽略NaN】
In [12]:
Out[12]:
0 11
1 22
2 33
dtype: int64
2.索引
標籤索引與位置索引
若是Series對象的index值爲非數值類型,經過[索引]訪問元素,索引既能夠是標籤索引,也能夠是位置索引。這會在必定程度上形成混淆。咱們能夠經過:
• loc 僅經過標籤索引訪問。
• iloc 僅經過位置索引訪問。
這樣,就能夠更加具備針對性去訪問元素。
整數數組索引與布爾數組索引
Series也支持使用整數數組與布爾數組進行索引。與Numpy數組相同,兩者返回的是原數組數據的拷貝(複製)。
說明:
• 與ndarray數組的整數索引不太相同,Series的整數數組索引,既能夠是標籤數組索引,也能夠是位置數組索引。
In [30]:
s=pd.Series([1,2,3],index=[10,20,30])
s.iloc[0]
s.iloc[0],s.iloc[1]
li_index=[0,1]
s.iloc[li_index]
li_keys=[10,20]
s.loc[li_keys]
s[[True,False,False]]
s=pd.Series(range(20))
s_b=s>10
s[s_b]
Out[30]:
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
dtype: int64
3.切片
Series也支持切片訪問一個區間的元素。與Numpy的數組相同,切片返回的是原數組數據的視圖。
In [38]:
s=pd.Series(range(20),index=range(100,120))
s
s.iloc[5:10]
s.loc[104:109]
s=pd.Series(range(5),index=["a","b","c","d","e"])
s.loc["d"]
s.loc["b":"d"]
Out[38]:
b 1
c 2
d 3
dtype: int64
4.Series的CRUD
Series索引-數值CRUD操做:
• 獲取值
• 修改值
• 增長索引-值
• 刪除索引-值
In [48]:
s=pd.Series(range(5),index=["a","b","c","d","e"])
s.loc["f"]=5
s.loc["f"]=50
s
s.drop("a",inplace=True)
s
Out[48]:
b 1
c 2
d 3
e 4
f 50
dtype: int64
將請期待下一篇——Pandas經常使用的兩種數據類型之「DataFrame」
若是你以爲文章還不錯,請你們點贊分享下。你的確定是我最大的鼓勵和支持。
▼更多幹貨分享,詳情請關注公衆號Python爬蟲與大數據分析呀!▼