pandas的常用方法整理

2021-08-22 02:41:37 字數 3924 閱讀 6219

pandas是建立在numpy基礎上的高效資料分析處理庫,是python的重要資料分析庫。pandas提供了眾多的高階函式,極大地簡化了資料處理的流程,尤其是被廣泛地應用於金融領域的資料分析。

pandas主要特點包括:

series型別是一組資料及與之相關的資料索引組成,實際應用並不多。dataframe是**型類,可理解為二維代表籤資料型別, 其由共用相同索引的一組列組成: index(axis=0),colum(axis=1)

目錄

1.包匯入

2.資料匯入

3.資料匯出

4.遍歷

5.建立物件

6.資料檢視

7.資料選取

8.資料清洗

9.資料處理:

10.資料合併

11.資料統計

12.其它:

一般我們需要做如下匯入,numpy和pandas一般需要聯合使用:

df:pandas dataframe物件

s:  pandas series物件

pd.read_csv(filename):從csv檔案匯入資料

pd.read_table(filename):從限定分隔符的文字檔案匯入資料

pd.read_excel(filename):從excel檔案匯入資料

pd.read_sql(query, connection_object):從sql表/庫匯入資料

pd.read_json(json_string):從json格式的字串匯入資料

pd.read_html(url):解析url、字串或者html檔案

pd.read_clipboard():從貼上板獲取內容

pd.dataframe(dict):從字典物件匯入資料

舉例:

#從文字檔案中讀取資料

df=pd.read_csv('data.csv')    #資料自帶列名

#等效於

#sep指分隔符,對於不是固定的分隔符時,可以編寫正規表示式作為分隔符

df=pd.read_table('data.csv',sep=',')

#若資料未帶列名,可預設:

df1=pd.read_csv('data1.csv',header=none)# header=0保留列屬性,header=none不讀列屬性

#自定義列名:

df2=pd.read_csv('data1.csv',names=['a','b','c','d','messgae'])

#指定message列(第4列)為列索引,index_col為整數或序列

df3=pd.read_csv('data.csv',index_col=4)

df.to_csv(filename):匯出資料到csv檔案

df.to_excel(filename):匯出資料到excel檔案

df.to_sql(table_name, connection_object):匯出資料到sql表

df.to_json(filename):以json格式匯出資料到文字檔案

方式1for index, row in df.iterrows():

print row["c1"], row["c2"]

方式2for row in df.itertuples(index=true, name='pandas'):

print getattr(row, "c1"), getattr(row, "c2")

方式3for i in range(0, len(df)):

print df.iloc[i]['c1'], df.iloc[i]['c2']

pd.dataframe(np.random.rand(20,5)):建立20行5列的隨機數組成的dataframe物件

pd.series(my_list):從可迭代物件my_list建立乙個series物件

df.index = pd.date_range('1900/1/30', periods=df.shape[0]):增加乙個日期索引

index和reindex聯合使用很有用處,index可作為索引並且元素亂排序之後,所以跟著元素保持不變,因此,當重拍元素時,只需要對index進行才重排即可:reindex。

舉例:標準正太分布資料:s = np.random.normal(0,1,10000)

時間資料:dates = pd.date_range(『20171021』,periods=6)

隨機矩陣:df1 = pd.dataframe(np.random.randn(6,4), index=dates, columns=list(『abcd』))

字典建立:

df = pd.dataframe()

df.values.tolist()獲得值

df.columns.values.tolist()獲得列名

df[col]:根據列名,並以series的形式返回列

df[[col1, col2]]:以dataframe形式返回多列

s.iloc[0]:按位置選取資料

s.loc['index_one']:按索引選取資料

df.loc基於標籤,df.iloc基於索引(從0開始),ix基於標籤或索引

df.iloc[0,:]:返回第一行

df.iloc[3] #第四行

df.iloc[:,3] #第四列

df.iloc[3:5,0:2] #第四到六行,第一到三列

df.iloc[[4,5,6],[0,1,2]] #第四到六行,第一到三列

df #這是對行進行切片

舉例:df.loc[0:10] #切片方式檢視前10個元素

df.loc(83, "列名")#定位到某個元素,行列分別是:83為行數和列名

df.columns = ['a','b','c']:重新命名列名

pd.isnull():檢查dataframe物件中的空值,並返回乙個boolean陣列

pd.notnull():檢查dataframe物件中的非空值,並返回乙個boolean陣列

df.dropna():刪除所有包含空值的行

df.fillna(x):用x替換dataframe物件中所有的空值

s.astype(float):將series中的資料型別更改為float型別

s.replace(1,'one'):用『one』代替所有等於1的值

df.rename(columns=lambda x: x + 1):批量更改列名

df.set_index('column_one'):更改索引列

舉例:df.dropna(how=』any』)#去掉包含缺失值的行 

df.fillna(value=5)#對缺失值進行填充 

pd.isnull(df)#檢視該列為空(nan)的所有元素,是空的返回true,不空返回false

filter, sort, groupby

df.describe():檢視資料值列的匯**計

df.mean():返回所有列的均值

df.corr():返回列與列之間的相關係數

df.count():返回每一列中的非空值的個數

df.max():返回每一列的最大值

df.min():返回每一列的最小值

df.median():返回每一列的中位數

df.std():返回每一列的標準差

pandas支援的資料型別

int 整型

float 浮點型

bool 布林型別

object 字串型別

category 種類

datetime 時間型別

df.astypes: 資料格式轉換

df.value_counts:相同數值的個數統計

df.hist(): 畫直方圖

df.get_dummies: one-hot編碼,將型別格式的屬性轉換成矩陣型的屬性。比如:三種顏色rgb,紅色編碼為[1 0 0]

參考:等

pandas常用操作整理

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

pandas 常用函式整理

pandas常用函式整理,作為個人筆記。僅標記函式大概用途做索引用,具體使用方式請參照pandas官方技術文件。約定from pandas import series,dataframe import pandas as pd import numpy as np 帶.的為series或者dataf...

整理 pandas 常用函式

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