一 、介紹
資料處理工具 1、便捷的資料處理。 2、讀取檔案方便 。 3、整合了 numpy 和 matplotlib的 計算跟畫圖。
二 、核心資料結構
1、dataframe
結構:既有行索引,又有列索引的二維陣列
pd.dataframe(stock_change,index=stock, columns=data) # 還可以用字典建立dataframe
#屬性 有 shape values #除去索引後的值。 t屬性 #行列轉置
行索引,橫向索引 index。 列索引 縱向所以 columns
# 方法 head(n) 指定返回前幾行,預設5。
tail(n) 指定返回最後幾行,預設5。
2、dataframe索引的設定
1)修改行列索引值
data.index=[...] # 只能修改全部索引值,不能單獨修改其中乙個或幾個。
2)重設索引
data.reset_index(drop=false) # 把原索引值轉化為列,重新設定索引值,drop預設false。
3)設定新索引
set_index(keys,drop=true) #keys: 列索引名稱或者列索引名稱列表。 drop bool default true:當做新索引,刪除原來的列。
通過 dataframe就變成了乙個具有multilindex的dataframe。
2、panel
dataframe 的容器
3、series
#帶索引的一維陣列
1) 屬性:index
values
2) 方法:
dataframe是series的容器
三、基本操作
1、 索引操作
1)直接索引
data[" "][" "] #必須先列後行進行索引
2)按名字索引
data.loc[" "][" "] data.loc[" "," "]
3) 按數字索引
data.iloc[1,0]
4)組合索引
data.ix[0:4,['a','b','c','d']]
data.loc[data.index[0:4],['a','b','c','d']]
data.iloc[0:4,data.colums.get_indexer(['a','b','c','d'])]
5) 賦值操作
# 通過索引後 賦值
6) 排序
對內容排序
dataframe data.sort_values(by=,ascending=) # 單個鍵或者多個鍵進行排序,預設公升序。 ascending=false 降序
series
對索引排序
dataframe data.sort_index
series
7、 dataframe 運算
1)算術運算
data["a"]+3 data["a"].add(3)
2)邏輯運算
邏輯運算子 < > | &
data[(data["a"]>2) & (data["b"]>15)]
邏輯運算函式
data.query("a>2 & b>15")
data[data["a"].isin([4.19,2.35])] # 查詢是否包含4.19 跟 2.35的 值
3)統計運算
data.describe() 一次性得到 min、max、count、mean、std、等指標
data.idxmax() data.idxmin() 獲取最大 最小值位置。
cumsum 計算前n個數的和。 cummax 計算前n個數的最大值 cummin 計算前n個數的最小值。 cumprod 計算前n個數的積
4) 自定義運算
8、畫圖
pandas.dataframe.plot(x=none,y=none,kind="line")
# ("line","bar","barh","hist","pie","scatter")
四、 檔案讀取
1 、csv檔案
pd.read_csv(path,usecols=["a","b","c"],name=["c","d","e","f"]) # 當檔案無索引列時,用name新增字段命名索引列。
pd.to_csv(paht,columns=["a","b"],index=false,mode="a") # index= false 不儲存索引 mode ="a" 追加模式,「w」寫入模式
2、 hdf5
hdf5 讀取和儲存需要制定乙個鍵,值要為儲存的dataframe 3資料的檔案
pd.read_hdf("path",key=,mode="開啟檔案方式") #key1 dataframe1 二維陣列 key2 dataframe2 二維陣列
pd.to_hdf("path",key="close") #乙個鍵相當於乙個dataframe
3、 json
pd.read_json("path",orient="records",lines=false) #預設不按行讀取
pd.to_json("path",orient="records",lines=false) #預設不按行儲存。
五 缺失值處理
判斷資料中是否存在nan: pd.isnull(data) , pd.notnull(data)
1、刪除缺失值 dropna(axis="rows',inplace=false) #inplace=false預設不會修改原資料,需要接受返回值。預設按行刪除
2、替換缺失值 fillna(value,inplace=true)
3、不存在缺失值,有預設標記的。
1)替換? 為np.nan
data.replace(to_replace="?",value=np.nan)
2) 按 np.nan處理
六 資料離散化
連續屬性離散化是為了簡化資料結構。
1、 分組
1) 自動分組sr=pd.qcut(data,bins) #bins為分成的組數
2) 自定義分組sr=pd.cut(data,) # 為分組邊界值
sr=pd.cut(data,[150,165,180,195])
sr.value_counts() #統計 各分組內的數量
2、 將分組好的結果轉換成one-hot編碼
pd.get_dummies(sr,prefix="") #prefix 分組名
七 合併處理
1、pd.concat([data1,data2],axis=0) #預設 axis=0
2、pd.merge(leftdata,rightdata,how="inner",on =[索引])
# how="inner" 內連線 保留左右兩個表內相同鍵值的資料。
#how="left" 左鏈結,保留左表指定鍵全部資料,右表隨意。
#how="right" 右鏈結,保留右表指定鍵全部資料,左表隨意。
#how="outer" 右鏈結,保留左、右兩表指定鍵全部資料。
八 交叉表與透視表 #找到、探索2個變數間的關係。
1、 交叉表 pd.crosstab(value1,value2)
2、 透視表data.pivot_table(,index=)
九 分組與聚合
1、#dataframe的方法
dat.groupby(by="",as_index="false")
pandas簡單使用介紹
1.pandas讀取csv檔案,並選擇資料行,資料列,單個及多個資料 csv檔案 c users 10907 documents training days csv檔案操作 test.csv def pandas csv csv path df pd.read csv csv path,sep en...
Pandas 基本介紹
本文是pandas的基本介紹 若用 python 的列表和字典來作比較,那麼可以說 numpy 是列表形式,而 pandas 就是字典形式。pandas是基於numpy構建的,讓numpy為中心的應用變得更加簡單。要使用pandas,首先要了解他主要兩個資料結構 series和dataframe。s...
pandas 屬性介紹
import pandas as pd import numpy as np pandas 資料分析的庫 用於資料處理 資料清洗 獲取儲存檔案 統計分析 結構 series 一維結構 dataframe 二維結構 panel 三維結構 numpy 資料分析庫 主要用於科學計算 ndarray 進行資...