1. 程式人生 > >python——pandas包的一些功能筆記

python——pandas包的一些功能筆記

pandas

series

import pandas as pd
from pandas import Series,DataFrame
data=Series([4,7,-5,3])
data.values #以陣列的形式呈現
data=Series([4,7,-5,3],index=["d","b","a","c"]) #自定義index
data.index #檢視index
data["a"] #索引查詢
data["a"]=5 #更改
data[data>0] #索引正值
np.exp(data)
"b" in data #返回布林值
data1 = Series(data) #字典轉換成series
data=Series(data,index=states) #states是一個包含index的list,若沒有對應的,則NaN pd.isnull(data) #返回都是布林值的series pd.notnull(data) data.isnull() data1+data2 #series在算數運算中會i懂對齊不同索引的資料 data.name="population" #設定series的名字 data.index.name="state" #索引也可以設定名字哦~~ data.index=["bob","steve","jeff"] #修改索引

DataFrame

frame=DataFrame(data) #字典轉化為dataframe,key變列索引
frame=DataFrame(data,columns=["year","state","pop"],index=["one","two","three"]) #columns是列索引,index是行索引 frame.columns #檢視列索引 frame.one frame["state"] frame.ix["three"] #`.ix`用於對行索引 frame["debt"]=16.5 #16.5覆蓋debt列的所有值 frame["debt"]=np.arange(5) frame["eastern"] = frame.state=="ohio" #得到布林值 frame=DateFrame(pop) #pop為巢狀字典,外層key為列索引,內層key為行索引
frame.T frame.index.name="year" frame.columns.name="state" frame.values #返回陣列

重新索引

data=Series([4.5,7.2,-5.3,3.6],index=["d","b","a","c"])
data1=data.reindex(["a","b","c","d","e"]) #`.reindex`進行索引排序
data1=data.reindex(["a","b","c","d","e"],fill_value=0) #`fill_value=0`即NaN變為0
data.reindex(range(6),method="ffill") #缺失項,前向填充,若method="bfill",即為後項填充
frame=DataFrame(np.arange(9).reshape((3,3)),index=["a","c","d"],columns=["ohio","texas","california"])
frame.reindex(["a","b","c","d"])
frame.ix[["a","b","c","d"],states] #左行索引,右列索引

丟棄指定軸上的項

frame.drop("c") #丟棄行的一項,預設axis=0,丟棄列是,設定axis=1
frame["b":"c"] #!!!!!!利用標籤的切片運算與普通的python切片運算不同,其末端是包含的。
data<0 #所有都返回布林值
data1.add(data2,fill_value=0)

排序和排名

data.sort_index() #按索引排序,預設axis=0
data.sort_index(axis=1,ascending=False) #列索引按降序排序
data.order() #series按值排序,且缺失值會預設放句末
frame.sort_index(by="b") #按b列順序
frame.sort_index(by=["b","a"])
frame.index.is_unique #索引是否唯一

彙總和計算描述統計

data.sum(axis=1,skipna=False) #skipana排除缺失值,預設為True
data.idxmax() #索引最大值
df.cumsum() #累計加
df.describe() #顯示數量、均值、方差、最小最大值、各分位數,非數值型資料返回:count、unique、top、freq
data.corr() #相關係數
data.cov() #協方差
data.corrwith(data.IBM)

唯一值、值計數以及成員資格

data.unique() #顯示series中的唯一值
data.value_counts() #series中各值出現頻數,預設sort=True
data.isin(["b","c"]) #series是否為b或c

濾除缺失資料

data.dropna() #預設丟棄任何含有缺失值的行
data.dropna(how="all") #how="all"表示只丟棄全為NA的那些行
df.ix[:4,1]=NA #`.ix`函式,若dataframe沒有設定index,包含末端
df.fillna({1:0.5,3:-1})
df.fillna(0,inplace=True)