pandas部分函式簡單介紹
阿新 • • 發佈:2018-12-12
在對資料做預處理的時候用到了pandas,整理一些用到的函式,以後檢視方便。初次使用給我的感覺就是pandas是用來處理表格資料的一個工具包,尤其是對csv格式的資料。它基於DataFrame
和Series
兩種資料型別。
1.資料讀入
假設被讀取的文字名為train_labels_100.csv
內容如下所示:
filename,width,height,class,xmin,ymin,xmax,ymax 1IMG20180906142057.jpg,1000,1777,cat,225,503,385,658 1IMG20180906142057.jpg,1000,1777,cat,450,420,569,543 1IMG20180906142057.jpg,1000,1777,cat,563,445,681,563 20180906152036.jpg,1000,1333,cat,206,420,326,515 20180906152036.jpg,1000,1333,cat,280,408,390,516 20180906152036.jpg,1000,1333,cat,616,815,686,894 20180906152036.jpg,1000,1333,cat,652,785,693,832 20180906151027.jpg,1000,1333,cat,1088,757,1174,843 20180906151027.jpg,1000,1333,cat,1047,813,1126,892 20180906151027.jpg,1000,1333,cat,1021,911,1065,954 20180906151027.jpg,1000,1333,cat,991,871,1028,907 20180906151027.jpg,1000,1333,cat,949,922,992,964
讀檔案程式碼:
import pandas as pd
examples = pd.read_csv(‘train_labels_100.csv’)
其中,examples
是DataFrame
型別(我管這個叫資料框),DataFrame
是一個二維的,表格型的資料結構,從csv
讀取的資料都會放在它裡面。
2.資料檢視
當匯入資料完成後,有強迫症的小夥伴總想檢視下讀入的資料長什麼樣子,或者對不對。用print(examples)
就能檢視讀入的全部資料,但是當資料量很大的時候在終端中全部顯示很難看。可以採用print(examples.head(3))
僅檢視前三行,如下圖所示,head()
是按資料原來的順序獲取前幾行,同樣tail()
len(examples)
可以獲取總行數。
3.行、列訪問、篩選記錄
在此,我把每一行就做一個記錄,有時候我們只需要檢視某些行、列,或者對記錄進行篩選。當篩選列的時候,採用列表前就可以,如獲取height
這一列,程式碼如下:
#獲取height列
hg = examples['height']
print(type(hg))
print(hg)
結果如下,hg
是Series
型別的,這是一種一維的資料型別。
可以採用loc[index]
函式對行進行訪問,index
就是每一行的索引,在最左邊。比如訪問index=2
的那行資料,程式碼如下:
row = examples.loc[2] print(row)
結果如下:
程式碼hg = examples[examples['height']<1777]
可以實現篩選,結果如下:
當需要篩選出滿足條件的記錄時,比如,我們要找出height>1333
的所有記錄,可以使用如下程式碼:
row = examples.loc[examples['height']>1333]
print(row)
結果如下:若有多個篩選條件,可以使用&
符號,如examples.loc[(examples['height']>1333)&(examples['height']>1333)]
3.分組
groupby
會按照你選擇的列對資料集進行分組。程式碼如下:
#按照filename這個列標籤進行分組
gb = examples.groupby("filename")
print('------- gb.size()-------')
#獲取每組有多少條記錄
print(gb.size())
print('------- gb.get_group()-------')
#檢視20180906152036.jpg這一組的記錄
print(gb.get_group('20180906152036.jpg'))
print('------- gb.groups.keys()-------')
#獲取每組的key(每組的標誌)
print(gb.groups.keys())
#獲取所有組的資訊
print('------- gb.groups-------')
print(gb.groups)
結果如下: