Pandas介紹 使用

2021-09-13 19:15:05 字數 3802 閱讀 3846

一 、介紹

資料處理工具 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 進行資...