pandas 常用函式整理

2022-03-25 12:05:14 字數 4715 閱讀 1937

pandas常用函式整理,作為個人筆記。

僅標記函式大概用途做索引用,具體使用方式請參照pandas官方技術文件。

約定from pandas import series, dataframe

import pandas as pd

import numpy as np

帶.的為series或者dataframe物件的方法,只列舉了部分關鍵字引數。

1、基礎

.values 獲取值,返回array物件

.index 獲取(行)索引,返回索引物件

series( index=) 建立series,可指定索引

pd.isnull pd.notnull 返回是否為缺失值的布林型陣列

.isnull 同上

dataframe(columns=,index=) 建立dataframe,可指定行索引,列索引

.t 行列轉置

del 關鍵字 刪除

.reindex(method=, fill_value=, index=, columns=) 重新索引,即按照新索引建立新物件,可指定缺失值 填充方式,缺失值插值方式,行索引,列索引

.ix[ , ] 同上,添入行、列索引,可傳入列表

.drop(axis=) 刪除指定軸上的指定值

.sort_index(axis=, by=列名) 對索引排序,可根據指定列的值進行排序

.order 按值排序

.rank(ascending=, method=, axis=) 排名

.index.is_unique 檢查索引值唯一性(是否有重複項)

2、約簡類,可指定軸、是否排除缺失值、層次化索引分組約簡。

.sum(axis=, skipna=, level=) 求和

.mean 均值

.idxmax 返回最大值索引

.cumsum 累積和

.describe統計描述彙總

.count 非nan值數量

.min 最小值

.quantile 分位數

.median 中位數

.mad 平均絕對離差

.var 方差

.std 標準差

.skew 偏度

.kurt 峰度

.cumprod 累積積

.diff

.pct_change

.tail 顯示尾行,五個

.head 顯示開始行,五個

.corr 求相關係數(series和series,或者dataframe和dataframe)

.cov 求協方差

.corrwith 求相關係數(dataframe的行或列 與series或dataframe)

.unique 得到唯一值陣列

.value_counts(sort=) 求值頻率,可傳入false指定降序排列

.isin 判斷成員資格

.dropna(how=, axis=, thresh=) 丟棄缺失資料,對dataframe可指定丟棄方式

.fillna(inplace=,method=, limit=) 用指定值或字典填充缺失資料,可指定是否就地修改,填充方式,填充數量限制

.unstack 行索引轉列索引

.stack 列索引轉行索引

multiindex.from_arrays 用陣列構建層次化索引

.swaplevel 重排層次化索引分級順序

.sortlevel 根據單個級別的值對資料排序

.set_index(drop=) 將某一列轉為行索引

.reset_index 將行索引轉為列

.irow 根據整數字置選取行

.icol 根據整數字置選取列

pd.panel 建立面板資料

.to_panel dataframe轉換為panel

.to_frame panel轉換為dataframe

3、資料讀取

pd.read_csv(sep=, delim_whitespace=, header=,skiprows=,converters=,keep_date_col=,parse_date=,na_values=,nrows=,skip_footer=, )

最常用的csv和text檔案讀取方式

.to_csv 將資料寫入csv

.from_csv 從csv讀取資料

4、資料規整

pd.merge(on=,how=,suffixes=,left_index=,right_index=) 橫向合併

.join(how=, on=, ) 按索引合併,可傳入一組dataframe

pd.concat(axis=,join=,join_axes=,keys=,names=,ignore_index=) 縱向連線,也可以傳入軸進行橫向連線

np.nan nan值

np.where 向量化if-else表達,第乙個為判斷條件,可為布林型陣列,後面兩個為值

.combine_first 用乙個資料為另乙個資料「打補丁」

.pivot 長格式轉寬格式,指定行索引,列索引名,填充值列

.duplicated 返回布林型series,表示各行是否是重複行(第一次出現的值為false,再次出現為true)

.drop_duplicates(take_last=) 返回移除了重複行的dataframe,可指定是保留第乙個還是最後乙個

.map 元素級轉換函式,可將函式應用於series或dataframe某列

.replace 替換指定值,第乙個引數為要被替換的值,第二個是用來替換的值,支援字典

.rename(index=, columns=,inplace=) 軸標籤更新,接受字典,可就地修改

pd.cut(right=,labels=) 面元劃分

pd.value_counts 值頻率計算

.any 可用來過濾異常值,裡面為容忍度整數

.take 按指定順序重排序,可接受列表

np.random.permutation 產生隨機重排列

pd.get_dummies(prefix=) 計算啞變數矩陣,可指定列字首

字串物件方法

.split 按指定值拆分字串

.strip 修剪空白符和換行符

.join 用指定值連線字串

.index 返回索引,找不到則引發異常

.find 返回索引,找不到返回-1

.count 返回指定子串出現次數

re.compile 編譯regex物件

re.compile.findall 得到匹配regex的所有模式

pd中的方法

.str.contains 按指定模式搜尋,返回布林型陣列

.str.match 按指定模式獲取

.str.get 按指定模式獲取

.str 按指定模式獲取

5、分組運算

.groupby(level=, axis=,group_keys=) 進行按列分組,然後就可以呼叫進行聚合或其他運算了

.size 返回含有分組大小的series

.agg(as_index=) 可對已經分組的物件應用,傳入函式,或者針對不同列的不同函式,用字典。

.add_prefix 為列索引加字首

.transform 傳入函式,將指定函式應用到各個分組,將結果放置到適當的位置

pd.pivot_table(rows=, cols=, margins=, aggfunc=, fill_value=,) 分組聚合,可指定需要聚合的列,分組列,新增分項小計,傳入聚合函式,缺失值設定。

pd.crosstab計算分組頻率的交叉表

6、時序分析

from datetime import datetime

datetime.now 獲取當前時間

now.year 年

now.month 月

now.day 日

.strftime 日期轉為字串,可指定格式

.strptime 字串轉為日期,可指定格式

from dateutil.parser import parse

parse 解析日期

pd.to_datetime 解析日期

pd.date_range(periods=, freq=) 生成日期索引

pd.datetimeindex 建立時間序列

.resample(how=,closed=,loffset=,fill_method=,limit=) 重取樣

.shift(freq=) 資料前移或滯後,正數為滯後,可指定週期

.tz_locallize 將單純時區轉本地化

.tz_convert 對本地化時區進行時區轉換

pd.timestamp 建立時間戳序列

pd.period 建立時期序列

pd.period_range 建立時期範圍序列

pd.periodindex 建立時期索引

.asfreq 時期頻率轉換

.to_timestamp 時期轉時間戳

.to_period 時間戳轉時期

.plot 畫圖

缺點和不足:未針對series和dataframe的方法做明確區別;index物件的方法未列舉;其他資料讀入方式未列取;關鍵字引數僅列舉了部分;視覺化未列舉;時序分析寫的過簡;pandas版本存在更新,函式及引數未完全驗證;一些操作技巧未說明。

補充:了解基礎部分就可以輔助完成策略編寫,而分組運算和時序分析部分函式不多,但靈活性很強,對個人研究的資料處理幫助較大,可以輕鬆畫出經典技術指標圖,或者構建自己的技術指標。更多統計分析與建模,還需要其他庫的支援。

整理 pandas 常用函式

1.df.head n 顯示資料前n行,不指定n,df.head則會顯示所有的行 2.df.columns.values獲取所有列索引的名稱 3.df.column name 直接獲取列column name的資料 4.pd.unique series 獲取series中元素的唯一值 即去掉重複的 ...

pandas常用操作整理

10 isin函式做篩選 11 缺失值處理 使用map函式就可以實現把某一列的字元型別的值轉換為數字。data class data class map首先定義乙個字典,然後使用map方法就可以把某一列的字元型別的值轉換為數字。參考 使用pandas把某一列的字元值轉換為數字的例項 使用value ...

pandas 常用函式

本文翻譯自文章 pandas cheat sheet python for data science 同時新增了部分註解。對於資料科學家,無論是資料分析還是資料探勘來說,pandas是乙個非常重要的python包。它不僅提供了很多方法,使得資料處理非常簡單,同時在資料處理速度上也做了很多優化,使得和...