1.模組匯入
import pandas as pd
2.pandas序列series自動給列表加上索引
如 a = [1,2,3,4]
b = pd.series(a)
c = enumerate(a)
print b
類似於
for i,j in c:
print i,j
3.numpy 只是純碎的生成矩陣陣列, 而 pandas 可以給numpy 生成的多維陣列的 各行 各列加上乙個名稱
4.產生乙個時間序列:
date= pd.date_range('20170101',periods = 7)
4.1給乙個二位數則每行每列定義乙個名稱
df= pd.dataframe(np.random.randn(7,4),index=date,columns=['a','b','c','d']
dataframe就是給二維陣列的每行每列加乙個標籤
注意:a = np.array([1,2,3,4]) 用於dataframe則表示4行1列
a = np.array([[1,2,3,4]])用於dataframe則表示1行4列
5.如果使用字典dict來初始化dataframe,則字典的key會成為二維陣列的列索引,行索引則自動生成
6.獲取df行索引 df.index
6.獲取df列索引 df.columns
6.獲取df值 df.values, 得到numpy形式的陣列
7.df.describe()會計算df各列的均值和標準差,
應用舉例:
df = pd.dataframe(np.random.randn(3,4))
d1 = df.describe()
d2 = d1.values
d3 = d2.t
d4= d3[0] 即可以得到第一列的均值,標準差
8.對df進行排序
df.sort_index(axis=0,ascending=false) 行索引降序排列
df.sort_index(axis=1,ascending=false) 列索引降序排列
9.對df進行選擇輸出
輸出某列 : 『a』列 df.a 或 df['a']
輸出多列: df.loc[:,['a','b']]
輸出某行: df[0:3] 輸出0到3行 , 以標籤輸出 df.loc['20170101']
輸出某行某列: 以標籤輸出 df.loc['20170101',['a','b']]
輸出某個元素:
,純數字篩選
df.iloc[3,1] 3行1列
df.iloc[1:2,1:2] 1到2行,1到2列
df.iloc[[1,3],1:2] 1行,3行,1列到2列
標籤篩選:
df.ix[:2,['a','b']] ,數字加標籤篩選
df[df.a>2],選出a列中大於2的行,同時顯示所有列
10 .給dataframe賦值:
更改某乙個元素:
df.iloc[2,1]=12 第二行第一列賦值12
df.loc['20170101','a'] =12 , 以標籤更改
更改某一列元素:
df.a = 0 第『a』列全部為0
df.a.[df.a >2]=0 第『a』列大於2的元素全為0
df.b.[df.a >2]=0 第『a』列大於2的元素對應的b列的元素全為0 ,a列不變,b列改變
更改某一列元素,影響其它列:
df[df.a >2] = 0,第『a』列大於2的元素全為0,其它對應的列也受到影響全部為0
11,給dataframe新增行列:
df原有a,b,c,d列 , 0到7行
增加1列: df['e'] = np.nan
增加1列: df['e'] = [1,2,3,4,5,6,7]
增加1列:df['e'] = pd.series([1,2,3,4,5,6,7],index=pd.date_range('20170101',periods=6))
增加一行:
df1 = pd.dataframe(np.ones(3,4),columns=['a','b','c','d'])
或 df1 = pd.series([1,2,3,4],index=['a','b','c','d'])
12.去掉df中元素為nan的行列
如果df中有元素為空即nan
df.dropna(axis = 0,how='any') 丟掉元素為空的行
df.dropna(axis = 1,how='any') 丟掉元素為空的列
13. 處理df中元素為空
將df中元素為nan統一賦個值:
df.fillna(value=0) 將為nan的元素賦值為0
判斷df是否缺失資料,即存在nan , 使用: df.isnull()檢視
使用 np.any(df.isnull())==true 判斷df中是否有nan
14.多個dataframe合併
numpy 中的多維陣列的合併使用:concatenate,hstack,vstack
dataframe使用cancat
例如: df1, df2的行列都是3行4列,其行標誌和列標誌都相同。
則合併df1 ,df2 使用 pd.concat([df1,df2],axis=0,ignore_index=true) 縱向合併
例如:合併df1, df2 相同的列,不同的列捨棄,則使用 pd.concat([df1,df2],join='inner',ignore_index=true)
例如:合併df1 ,df2 使用 pd.concat([df1,df2],axis=1,join_axes=[df1.index]) 水平合併,並使用df1的index
例如:df1,和 df2 有一列完全一樣,如df1 是 『a』,'b','c','d',df2是『d』,'e','f','g'。 則以『d』列作為參考合併兩個dataframe,得到'a','b','c','d','e','f','g'。使用:pd.merge(df1,df2,on='d')
pandas庫學習記錄
在接觸了一點python的資料分析後,發現有乙個眾人很推崇的pandas庫。據說,與numpy結合能夠實現許多強大的使資料分析功能。但其實在接觸一段時間之後,我發現,還是很難掌握這個庫的精髓。為了避免長時間遺忘,我把這一系列實踐記錄下來。引用 import pandas 一般都寫作 import p...
pandas庫學習記錄 一)
pandas庫是乙個基於numpy庫的乙個開源python庫,用於快速分析,清洗和準備資料。pandas中的主要兩種資料型別 序列series 類似於一維陣列,可以用numpy中針對一維陣列的函式,也可以用標籤來進行索引,可自動對齊 資料框dataframe 多用於二維陣列,也可以用numpy中二維...
機器學習學習記錄 持續更新 pandas
pandas訪問資料的方法 pandas操控資料的方法 pandas 是一種列存資料分析 api。它是用於處理和分析輸入資料的強大工具,很多機器學習框架都支援將 pandas 資料結構作為輸入。可以將它想象成乙個關係型資料 其中包含多個行和已命名的列。建立dataframe的方法可以是將對映 str...