Pandas入門

Pandas庫的引用

Pandas是Python第三方庫,提供高性能易用數(shù)據(jù)類型和分析工具
Pandas基于NumPy實現(xiàn),常與NumPy和Matplotlib一同使用

import pandas as pd

Pandas庫的理解

兩個數(shù)據(jù)類型:Series, DataFrame

基于上述數(shù)據(jù)類型的各類操作:基本操作、運算操作、特征類操作、關聯(lián)類操作

Numpy Pandas
基礎數(shù)據(jù)類型 擴展數(shù)據(jù)類型
關注數(shù)據(jù)的結構表達 關注數(shù)據(jù)的應用表達
維度:數(shù)據(jù)間關系 數(shù)據(jù)與索引間關系

Pandas庫的Series類型

Series類型由一組數(shù)據(jù)及與之相關的數(shù)據(jù)索引組成

Series類型可以由如下類型創(chuàng)建:

  • Python列表,index與列表元素個數(shù)一致
  • 標量值,index表達Series類型的尺寸
  • Python字典,鍵值對中的“鍵”是索引,index從字典中進行選擇操作
  • ndarray,索引和數(shù)據(jù)都可以通過ndarray類型創(chuàng)建
  • 其他函數(shù),range()函數(shù)等

舉例:

s = pd.Series( [9, 8, 7, 6] )#自動索引
s = pd.Series( [9, 8, 7, 6], index=['a', 'b', 'c', 'd'] )#自定義索引
s = pd.Series(25, index=['a', 'b', 'c', 'd'] )#從標量值創(chuàng)建不能省略index
s = pd.Series( {'a':9, 'b':8, 'c':7} )
s = pd.Series( {'a':9, 'b':8, 'c':7}, index=['c', 'a', 'b', 'd'] )
s = pd.Series(np.arange(5))
s = pd.Series(np.arange(5), index = np.arange(9, 4, 1))

Series類型的基本操作

Series類型包括index和values兩部分,.index 獲得索引, .values 獲得數(shù)據(jù)。自動索引和自定義索引并存,但不能混用。

Series類型的操作類似ndarray類型

  • 索引方法相同,采用[]
  • NumPy中運算和操作可用于Series類型
  • 可以通過自定義索引的列表進行切片
  • 可以通過自動索引進行切片,如果存在自定義索引,則一同被切片

Series類型的操作類似Python字典類型

  • 通過自定義索引訪問
  • 保留字in操作
  • 使用.get()方法

Series類型的對齊操作

Series + Series

Series類型在運算中會自動對齊不同索引的數(shù)據(jù)。沒有相同索引處是NaN.

Series類型的name屬性

Series對象和索引都可以有一個名字,存儲在屬性.name中。
.name 和 .index.name

Pandas庫的DataFrame類型

DataFrame類型由共用相同索引的一組列組成

DataFrame是一個表格型的數(shù)據(jù)類型,每列值類型可以不同
DataFrame既有行索引、也有列索引
DataFrame常用于表達二維數(shù)據(jù),但可以表達多維數(shù)據(jù)

DataFrame類型可以由如下類型創(chuàng)建:

  • 二維ndarray對象
  • 由一維ndarray、列表、字典、元組或Series構成的字典
  • Series類型
  • 其他的DataFrame類型

實例:

d = pd.DataFrame(np.arange(10).reshape(2, 5))#兩行五列
dt = { 'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
     {'two' : pd.Series([9, 8, 7, 6], index=['a', 'b', 'c', 'd'])}
d = pd.DataFrame(dt)#四行兩列
dl = {'one' : [1, 2, 3, 4], 'two' : [9, 8, 7, 6]}
d = pd.DataFrame(dl, index = ['a', 'b', 'c', 'd'])

列索引:d[]
行索引:d.ix[]
行列索引:d[column][index]

Pandas庫的數(shù)據(jù)類型操作

重新索引

.reindex()能夠改變或重排Series和DataFrame索引

d = d.reindex(index=[], column=[])

.reindex(index=None, column=None, ...)的參數(shù):

參數(shù) 說明
index, columns 新的行列自定義索引
fill_value 重新索引中,用于填充缺失位置的值
method 填充方法, ffill當前值向前填充,bfill向后填充
limit 最大填充量
copy 默認True,生成新的對象,F(xiàn)alse時,新舊相等不復制

索引類型

Series和DataFrame的索引是Index類型
Index對象是不可修改類型

索引類型的常用方法:

方法 說明
.append(idx) 連接另一個Index對象,產生新的Index對象
.diff(idx) 計算差集,產生新的Index對象
.intersection(idx) 計算交集
.union(idx) 計算并集
.delete(loc) 刪除loc位置處的元素
.insert(loc,e) 在loc位置增加一個元素e

刪除指定索引對象:

.drop(loc, axis=0) 刪除Series和DataFrame指定行或列索引
默認刪除行索引,如要刪除列索引,需指定axis=1

Pandas庫的數(shù)據(jù)類型運算

算術運算法則

算術運算根據(jù)行列索引,補齊后運算,運算默認產生浮點數(shù)。
補齊時缺項填充NaN (空值)。
二維和一維、一維和零維間為廣播運算。一維Series默認在軸1參與運算,使用運算方法可以令一維Series參與軸0運算。
采用+ ‐ * /符號進行的二元運算產生新的對象。

方法形式的運算:

方法 說明
.add(d, **argws) 類型間加法運算,可選參數(shù)
.sub(d, **argws) 類型間減法運算,可選參數(shù)
.mul(d, **argws) 類型間乘法運算,可選參數(shù)
.div(d, **argws) 類型間除法運算,可選參數(shù)

比較運算法則

比較運算只能比較相同索引的元素,不進行補齊。
同維度運算,尺寸一致。
二維和一維、一維和零維間為廣播運算,默認在1軸。
采用> < >= <= == !=等符號進行的二元運算產生布爾對象。

Reference:
中國大學MOOC北京理工大學Python數(shù)據(jù)分析與展示課程嵩天老師課件
課程主頁

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容