1. 程式人生 > >Pandas的常用方法

Pandas的常用方法

DataFrame

    DataFrame是一個表格型的資料結構,它含有一組有序的列,每列可以是不同的值型別(數值、字串、布林值等)。DataFrame既有行索引也有列索引,它可以被看做由Series組成的字典(共用同一個索引)。

    DataFrame可以通過類似字典的方式或者.columnname的方式將列獲取為一個Series。行也可以通過位置或名稱的方式進行獲取。

    為不存在的列賦值會建立新列。

    >>> del frame['xxx']  # 刪除列

DataFrame常用屬性

屬性說明
valuesDataFrame的值
index行索引
index.name行索引的名字
columns列索引
columns.name列索引的名字
ix返回行的DataFrame
ix[[x,y,...], [x,y,...]]對行重新索引,然後對列重新索引
Tframe行列轉置

Dataframe常用函式

函式說明

DataFrame(dict, columns=dict.index, index=[dict.columnnum])

DataFrame(二維ndarray)

DataFrame(由陣列、列表或元組組成的字典)

DataFrame(NumPy的結構化/記錄陣列)

DataFrame(由Series組成的字典)

DataFrame(由字典組成的字典)

DataFrame(字典或Series的列表)

DataFrame(由列表或元組組成的列表)

DataFrame(DataFrame)

DataFrame(NumPy的MaskedArray)

構建DataFrame

資料矩陣,還可以傳入行標和列標

每個序列會變成DataFrame的一列。所有序列的長度必須相同

類似於“由陣列組成的字典”

每個Series會成為一列。如果沒有顯式制定索引,則各Series的索引會被合併成結果的行索引

各內層字典會成為一列。鍵會被合併成結果的行索引。

各項將會成為DataFrame的一行。索引的並集會成為DataFrame的列標。

類似於二維ndarray

沿用DataFrame

類似於二維ndarray,但掩碼結果會變成NA/缺失值

df.reindex([x,y,...], fill_value=NaN, limit)

df.reindex([x,y,...], method=NaN)

df.reindex([x,y,...], columns=[x,y,...],copy=True)

返回一個適應新索引的新物件,將缺失值填充為fill_value,最大填充量為limit

返回適應新索引的新物件,填充方式為method

同時對行和列進行重新索引,預設複製新物件。

df.drop(index, axis=0)丟棄指定軸上的指定項。
排序函式說明

df.sort_index(axis=0, ascending=True)

df.sort_index(by=[a,b,...])

根據索引排序
彙總統計函式說明
df.count()非NaN的數量
df.describe()一次性產生多個彙總統計

df.min()

df.min()

最小值

最大值

df.idxmax(axis=0, skipna=True)

df.idxmin(axis=0, skipna=True)

返回含有最大值的index的Series

返回含有最小值的index的Series

df.quantile(axis=0)計算樣本的分位數

df.sum(axis=0, skipna=True, level=NaN)

df.mean(axis=0, skipna=True, level=NaN)

df.median(axis=0, skipna=True, level=NaN)

df.mad(axis=0, skipna=True, level=NaN)

df.var(axis=0, skipna=True, level=NaN)

df.std(axis=0, skipna=True, level=NaN)

df.skew(axis=0, skipna=True, level=NaN)

df.kurt(axis=0, skipna=True, level=NaN)

df.cumsum(axis=0, skipna=True, level=NaN)

df.cummin(axis=0, skipna=True, level=NaN)

df.cummax(axis=0, skipna=True, level=NaN)

df.cumprod(axis=0, skipna=True, level=NaN)

df.diff(axis=0)

df.pct_change(axis=0)

返回一個含有求和小計的Series

返回一個含有平均值的Series

返回一個含有算術中位數的Series

返回一個根據平均值計算平均絕對離差的Series

返回一個方差的Series

返回一個標準差的Series

返回樣本值的偏度(三階距)

返回樣本值的峰度(四階距)

返回樣本的累計和

返回樣本的累計最大值

返回樣本的累計最小值

返回樣本的累計積

返回樣本的一階差分

返回樣本的百分比數變化

計算函式說明 

df.add(df2, fill_value=NaN, axist=1)

df.sub(df2, fill_value=NaN, axist=1)

df.div(df2, fill_value=NaN, axist=1)

df.mul(df2, fill_value=NaN, axist=1)

元素級相加,對齊時找不到元素預設用fill_value 

元素級相減,對齊時找不到元素預設用fill_value 

元素級相除,對齊時找不到元素預設用fill_value 

元素級相乘,對齊時找不到元素預設用fill_value 

df.apply(f, axis=0)將f函式應用到由各行各列所形成的一維陣列上
df.applymap(f)將f函式應用到各個元素上
df.cumsum(axis=0, skipna=True)累加,返回累加後的dataframe

Dataframe常用索引方式

索引方式說明
df[val]選取DataFrame的單個列或一組列
df.ix[val]選取Dataframe的單個行或一組行
df.ix[:,val]選取單個列或列子集
df.ix[val1,val2]將一個或多個軸匹配到新索引
reindex方法將一個或多個軸匹配到新索引
xs方法根據標籤選取單行或者單列,返回一個Series
icol、irow方法根據整數位置選取單列或單行,並返回一個Series
get_value、set_value根據行標籤和列標籤選取單個值

運算:

    預設情況下,Dataframe和Series之間的算術運算會將Series的索引匹配到的Dataframe的列,沿著列一直向下傳播。若索引找不到,則會重新索引產生並集。

Index

    pandas的索引物件負責管理軸標籤和其他元資料(比如軸名稱等)。構建Series或DataFrame時,所用到的任何陣列或其他序列的標籤都會被轉換成一個Index。Index物件不可修改,從而在多個數據結構之間安全共享。


主要的Index物件說明
Index最廣泛的Index物件,將軸標籤表示為一個由Python物件組成的NumPy陣列
Int64Index針對整數的特殊Index
MultiIndex“層次化”索引物件,表示單個軸上的多層索引。可以看做由元組組成的陣列
DatetimeIndex儲存納秒級時間戳(用NumPy的Datetime64型別表示)
PeriodIndex針對Period資料(時間間隔)的特殊Index

主要的Index屬性

函式說明
Index([x,y,...])建立索引
append(Index)連線另一個Index物件,產生一個新的Index
diff(Index)計算差集,產生一個新的Index
intersection(Index)計算交集
union(Index)計算並集
isin(Index)檢查是否存在與引數索引中,返回bool型陣列
delete(i)刪除索引i處元素,得到新的Index
drop(str)刪除傳入的值,得到新Index
insert(i,str)將元素插入到索引i處,得到新Index
is_monotonic()當各元素大於前一個元素時,返回true
is_unique()當Index沒有重複值時,返回true
unique()計算Index中唯一值的陣列