Python第三方庫(kù)Pandas2020-03-12

本文是作者學(xué)習(xí)課程Python數(shù)據(jù)分析與展示 北京理工大學(xué) 嵩天的簡(jiǎn)要學(xué)習(xí)筆記.

import pandas as pd

基本操作

d=pd.Series(range(20))#創(chuàng)造series
d.cumsum()#計(jì)算前n項(xiàng)和

基于兩個(gè)數(shù)據(jù)類型

  • Series
  • DataFrame
    的四個(gè)操作
  • 基本操作
  • 運(yùn)算操作
  • 特征類操作
  • 關(guān)聯(lián)類操作
    對(duì)比NumPy和Pandas
    |NumPy|Pandas|
    |:|:|
    |基礎(chǔ)數(shù)據(jù)類型|擴(kuò)展數(shù)據(jù)類型|
    |關(guān)注數(shù)據(jù)的結(jié)構(gòu)表達(dá)|關(guān)注數(shù)據(jù)的應(yīng)用表達(dá)|
    |維度:數(shù)據(jù)間關(guān)系|數(shù)據(jù)和索引之間關(guān)系|

Series
由一組數(shù)據(jù)機(jī)器相關(guān)聯(lián)的數(shù)據(jù)索引組成

d=pd.Series(range(20))#傳入一個(gè)列表創(chuàng)造series,pandas會(huì)為其自動(dòng)創(chuàng)造索引
#或者傳第二個(gè)參數(shù)--一個(gè)列表給參數(shù)index,這樣可以自助定義索引

Series可以通過(guò)以下類型創(chuàng)建

  • Python列表
  • index和列表元素一致
  • 標(biāo)量值
  • index表示其尺寸
  • Python字典 {key:value,...}
  • 可以傳入index對(duì)參數(shù)順序進(jìn)行規(guī)范
  • ndarray
  • n=pd.Series(np.arange(5))
  • 其他函數(shù)
  • 如range()

Series類型的基本操作

 b=pd.Series([9,8,7,6],['a','b','c','d'])
 b.index
 b.values
 b['b']
 b[1]
 #自動(dòng)索引和自定義索引并存,但是不能混用不然自動(dòng)產(chǎn)生的index會(huì)NaN
 #可以用ndarray的操作方法里的ndarray進(jìn)行切片
 #如果切片了好幾個(gè)鍵值對(duì)會(huì)默認(rèn)生成新Series然而切片一個(gè)就只會(huì)直接訪問(wèn) 
 'c' in b
 b.get('f',100)
 
# Series+Series
#索引不同的不運(yùn)算(NaN)索引相同的進(jìn)行運(yùn)算
b.name#對(duì)象的名字
b.index.name#索引的名字

#Series隨時(shí)修改,立刻生效

DataFrame的本質(zhì)是多列數(shù)據(jù)共用一列索引,縱向的column axis=1,橫向的index axis=0;常用于二維數(shù)據(jù)
創(chuàng)建DataFrame
DataFrame類型的基本操作

  • 二維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)
dp.DataFrame(dt,index=[],columns=[])
#調(diào)整dt的行列
d.columns
d.values
d.index
d.ix['']#生成一行新的對(duì)象
d[][]#支持聯(lián)合索引的二位帶標(biāo)簽數(shù)組
d.reindex()#傳列表參數(shù)給index或者column參數(shù)
d.columns.delete()
d.index.insert()

pandas庫(kù)的數(shù)據(jù)類型運(yùn)算

  • 算數(shù)運(yùn)算法則
  • 根據(jù)行列索引補(bǔ)齊之后運(yùn)算,默認(rèn)產(chǎn)生浮點(diǎn)數(shù)
  • 不起的時(shí)候填nan
  • 高低維之間采用廣播運(yùn)算
  • 四則運(yùn)算可以采用方法運(yùn)算
  • .add() .sub() .mul() .div()
  • fill_value參數(shù)可以替代nan賦初值
  • 可以考慮布爾型對(duì)象

摘要的過(guò)程:有損地利用數(shù)據(jù)對(duì)數(shù)據(jù)進(jìn)行處理.
數(shù)據(jù)基本處理
數(shù)據(jù)的排序

a.sort_index(axis=0,ascending=True)#在指定軸上根據(jù)索引進(jìn)行排序,默認(rèn)升序 
 #也可以對(duì)縱軸進(jìn)行排序
 Series.sort_values(axis=0,ascending=True)
 DataFrame.sort_values(by,axis=0,ascending=True)#by表示排序軸的索引 NaN項(xiàng)被放在末尾

基本統(tǒng)計(jì)分析方法

方法 說(shuō)明
.sum() .count() 總和\有效值數(shù)量
.mean() .median() 算術(shù)平均數(shù)\中位數(shù)
.var() .std() 方差\標(biāo)準(zhǔn)差
.min() .max() 最小\最大值
argmin() argmax() 計(jì)算極值所在位置的索引位置(自動(dòng)索引)Series Only
.idxmin() .idxmax() 計(jì)算極值所在位置的索引(自定義索引)Series Only
.describe() 生成0軸的所有元素的所有初步統(tǒng)計(jì)結(jié)果,由于生成的是Series類型,因此可以用方括號(hào)索引

累計(jì)統(tǒng)計(jì)分析方法

方法 說(shuō)明
cumsum(n) 計(jì)算前n個(gè)數(shù)字的和
cumprod(n) 計(jì)算前n個(gè)數(shù)的積
cummax(n) 計(jì)算前n個(gè)數(shù)字的最大值
cummin(n) 計(jì)算前n個(gè)數(shù)字的最小值
.rolling(w) 獲取w為寬的窗口.后面接基本統(tǒng)計(jì)分析方法可以依次對(duì)相鄰的w個(gè)元素進(jìn)行操作

相關(guān)分析方法

方法 說(shuō)明
.cov() 計(jì)算協(xié)方差矩陣
.corr() 計(jì)算相關(guān)系數(shù)矩陣,Pearson\Spearman\Kendall等相關(guān)系數(shù)

Pandas官方網(wǎng)站

Python數(shù)據(jù)分析與展示 北京理工大學(xué) 嵩天

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容