import?pandas?as?pd
專注于為中小企業(yè)提供網(wǎng)站制作、成都網(wǎng)站設(shè)計服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)東阿免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
Python中import的as語法,pd作為pandas的簡寫,
后續(xù)對pandas的引用,可以直接使用pd
在Python中,pandas是基于NumPy數(shù)組構(gòu)建的,使數(shù)據(jù)預(yù)處理、清洗、分析工作變得更快更簡單。pandas是專門為處理表格和混雜數(shù)據(jù)設(shè)計的,而NumPy更適合處理統(tǒng)一的數(shù)值數(shù)組數(shù)據(jù)。
使用下面格式約定,引入pandas包:
pandas有兩個主要數(shù)據(jù)結(jié)構(gòu):Series和DataFrame。
Series是一種類似于一維數(shù)組的對象,它由 一組數(shù)據(jù) (各種NumPy數(shù)據(jù)類型)以及一組與之相關(guān)的 數(shù)據(jù)標(biāo)簽(即索引) 組成,即index和values兩部分,可以通過索引的方式選取Series中的單個或一組值。
pd.Series(list,index=[ ]) ,第二個參數(shù)是Series中數(shù)據(jù)的索引,可以省略。
Series類型索引、切片、運算的操作類似于ndarray,同樣的類似Python字典類型的操作,包括保留字in操作、使用.get()方法。
Series和ndarray之間的主要區(qū)別在于Series之間的操作會根據(jù)索引自動對齊數(shù)據(jù)。
DataFrame是一個表格型的數(shù)據(jù)類型,每列值類型可以不同,是最常用的pandas對象。DataFrame既有行索引也有列索引,它可以被看做由Series組成的字典(共用同一個索引)。DataFrame中的數(shù)據(jù)是以一個或多個二維塊存放的(而不是列表、字典或別的一維數(shù)據(jù)結(jié)構(gòu))。
pd.DataFrame(data,columns = [ ],index = [ ]) :columns和index為指定的列、行索引,并按照順序排列。
如果創(chuàng)建時指定了columns和index索引,則按照索引順序排列,并且如果傳入的列在數(shù)據(jù)中找不到,就會在結(jié)果中產(chǎn)生缺失值:
數(shù)據(jù)索引 :Series和DataFrame的索引是Index類型,Index對象是不可修改,可通過索引值或索引標(biāo)簽獲取目標(biāo)數(shù)據(jù),也可通過索引使序列或數(shù)據(jù)框的計算、操作實現(xiàn)自動化對齊。索引類型index的常用方法:
重新索引 :能夠改變、重排Series和DataFrame索引,會創(chuàng)建一個新對象,如果某個索引值當(dāng)前不存在,就引入缺失值。
df.reindex(index, columns ,fill_value, method, limit, copy ) :index/columns為新的行列自定義索引;fill_value為用于填充缺失位置的值;method為填充方法,ffill當(dāng)前值向前填充,bfill向后填充;limit為最大填充量;copy 默認(rèn)True,生成新的對象,F(xiàn)alse時,新舊相等不復(fù)制。
刪除指定索引 :默認(rèn)返回的是一個新對象。
.drop() :能夠刪除Series和DataFrame指定行或列索引。
刪除一行或者一列時,用單引號指定索引,刪除多行時用列表指定索引。
如果刪除的是列索引,需要增加axis=1或axis='columns'作為參數(shù)。
增加inplace=True作為參數(shù),可以就地修改對象,不會返回新的對象。
在pandas中,有多個方法可以選取和重新組合數(shù)據(jù)。對于DataFrame,表5-4進(jìn)行了總結(jié)
適用于Series和DataFrame的基本統(tǒng)計分析函數(shù) :傳入axis='columns'或axis=1將會按行進(jìn)行運算。
.describe() :針對各列的多個統(tǒng)計匯總,用統(tǒng)計學(xué)指標(biāo)快速描述數(shù)據(jù)的概要。
.sum() :計算各列數(shù)據(jù)的和
.count() :非NaN值的數(shù)量
.mean( )/.median() :計算數(shù)據(jù)的算術(shù)平均值、算術(shù)中位數(shù)
.var()/.std() :計算數(shù)據(jù)的方差、標(biāo)準(zhǔn)差
.corr()/.cov() :計算相關(guān)系數(shù)矩陣、協(xié)方差矩陣,是通過參數(shù)對計算出來的。Series的corr方法用于計算兩個Series中重疊的、非NA的、按索引對齊的值的相關(guān)系數(shù)。DataFrame的corr和cov方法將以DataFrame的形式分別返回完整的相關(guān)系數(shù)或協(xié)方差矩陣。
.corrwith() :利用DataFrame的corrwith方法,可以計算其列或行跟另一個Series或DataFrame之間的相關(guān)系數(shù)。傳入一個Series將會返回一個相關(guān)系數(shù)值Series(針對各列進(jìn)行計算),傳入一個DataFrame則會計算按列名配對的相關(guān)系數(shù)。
.min()/.max() :計算數(shù)據(jù)的最小值、最大值
.diff() :計算一階差分,對時間序列很有效
.mode() :計算眾數(shù),返回頻數(shù)最高的那(幾)個
.mean() :計算均值
.quantile() :計算分位數(shù)(0到1)
.isin() :用于判斷矢量化集合的成員資格,可用于過濾Series中或DataFrame列中數(shù)據(jù)的子集
適用于Series的基本統(tǒng)計分析函數(shù),DataFrame[列名]返回的是一個Series類型。
.unique() :返回一個Series中的唯一值組成的數(shù)組。
.value_counts() :計算一個Series中各值出現(xiàn)的頻率。
.argmin()/.argmax() :計算數(shù)據(jù)最大值、最小值所在位置的索引位置(自動索引)
.idxmin()/.idxmax() :計算數(shù)據(jù)最大值、最小值所在位置的索引(自定義索引)
pandas提供了一些用于將表格型數(shù)據(jù)讀取為DataFrame對象的函數(shù)。下表對它們進(jìn)行了總結(jié),其中read_csv()、read_table()、to_csv()是用得最多的。
在數(shù)據(jù)分析和建模的過程中,相當(dāng)多的時間要用在數(shù)據(jù)準(zhǔn)備上:加載、清理、轉(zhuǎn)換以及重塑。
在許多數(shù)據(jù)分析工作中,缺失數(shù)據(jù)是經(jīng)常發(fā)生的。對于數(shù)值數(shù)據(jù),pandas使用浮點值NaN(np.nan)表示缺失數(shù)據(jù),也可將缺失值表示為NA(Python內(nèi)置的None值)。
替換值
.replace(old, new) :用新的數(shù)據(jù)替換老的數(shù)據(jù),如果希望一次性替換多個值,old和new可以是列表。默認(rèn)會返回一個新的對象,傳入inplace=True可以對現(xiàn)有對象進(jìn)行就地修改。
刪除重復(fù)數(shù)據(jù)
利用函數(shù)或字典進(jìn)行數(shù)據(jù)轉(zhuǎn)換
df.head():查詢數(shù)據(jù)的前五行
df.tail():查詢數(shù)據(jù)的末尾5行
pandas.cut()
pandas.qcut() 基于分位數(shù)的離散化函數(shù)?;谥然蚧跇颖痉治粩?shù)將變量離散化為等大小桶。
pandas.date_range() 返回一個時間索引
df.apply() 沿相應(yīng)軸應(yīng)用函數(shù)
Series.value_counts() 返回不同數(shù)據(jù)的計數(shù)值
df.aggregate()
df.reset_index() 重新設(shè)置index,參數(shù)drop = True時會丟棄原來的索引,設(shè)置新的從0開始的索引。常與groupby()一起用
numpy.zeros()
pd.DataFrame()函數(shù)是創(chuàng)建一個二維表
傳入的兩個參數(shù):
第一個是所存放的數(shù)據(jù)
np.random.rand(100,4) 這個的意思是生成指定維度的的[0,1)范圍之間的隨機(jī)數(shù),生成為維度100行4列的二維數(shù)組,下面的例子你可以作為參照
請點擊輸入圖片描述
而之后的
cumsum()其實第一個參數(shù)本來傳入的需要是數(shù)組,然后計算軸向元素累加和,
而你的例子中進(jìn)行了簡化,即np.cumsum(a, 0) == a.cumsum(0)
其中的傳入?yún)?shù)0表示axis=0,即按照行累加,例子中即隨機(jī)數(shù)的累加
舉個例子a =[ [(1,2,3)],
? ? ? ? ? ? ? ?[(4,5,6)] ]
a.cumsum(0)就是
[ [(1,2,3)],
[(5,7,9)] ]~~~~~~~~(1+4)(2+5)(3+6)
第二個參數(shù)columns是DataFrame的列名分別為ABCD
利用Python的pandas數(shù)據(jù)結(jié)構(gòu)來讀取excel表格的數(shù)據(jù),部分代碼如下:
#-*- coding:utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt
catering_data="catering_sale.xls"
data=pd.read_excel(catering_data,index_col=u'日期')
#讀取數(shù)據(jù),指定"日期"列為索引列
大多數(shù)書上都是這樣寫的,但是在Python2.7上運行時出現(xiàn)錯誤。(沒有在Python3.x版本試過)
出現(xiàn)了如下問題:
這里寫圖片描述
使用help(pd.read_excel)發(fā)現(xiàn)參數(shù)中有必選參數(shù)sheetname,加入到函數(shù)中,代碼如下:
#-*- coding:utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt
catering_data="catering_sale.xls"
data=pd.read_excel(catering_data,sheetname=0,index_col=u'日期')
運行成功。
sheetname=0 的意思是:讀取xls文件中的第一個表格。(假設(shè)文件中有很多個表格)
另外,也可以將文件轉(zhuǎn)換成csv格式,就不需要這個參數(shù)了。代碼如下:
catering_data="catering_sale.csv"
data=pd.read_csv(catering_data)
當(dāng)前文章:python中的pd函數(shù) python中pd的用法
文章位置:http://aaarwkj.com/article24/doodhce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、靜態(tài)網(wǎng)站、域名注冊、搜索引擎優(yōu)化、移動網(wǎng)站建設(shè)、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)