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中元素的唯一值 即去掉重複的 ...