1. 程式人生 > >pandas部分函式簡單介紹

pandas部分函式簡單介紹

    在對資料做預處理的時候用到了pandas,整理一些用到的函式,以後檢視方便。初次使用給我的感覺就是pandas是用來處理表格資料的一個工具包,尤其是對csv格式的資料。它基於DataFrameSeries兩種資料型別。

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’)

其中,examplesDataFrame型別(我管這個叫資料框),DataFrame是一個二維的,表格型的資料結構,從csv讀取的資料都會放在它裡面。

2.資料檢視

當匯入資料完成後,有強迫症的小夥伴總想檢視下讀入的資料長什麼樣子,或者對不對。用print(examples)就能檢視讀入的全部資料,但是當資料量很大的時候在終端中全部顯示很難看。可以採用print(examples.head(3))僅檢視前三行,如下圖所示,head()是按資料原來的順序獲取前幾行,同樣tail()

是按順序獲取最後幾行,len(examples)可以獲取總行數。 在這裡插入圖片描述

3.行、列訪問、篩選記錄

在此,我把每一行就做一個記錄,有時候我們只需要檢視某些行、列,或者對記錄進行篩選。當篩選列的時候,採用列表前就可以,如獲取height這一列,程式碼如下:

#獲取height列
hg = examples['height']
print(type(hg))
print(hg)

結果如下,hgSeries型別的,這是一種一維的資料型別。 在這裡插入圖片描述 可以採用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)

結果如下: 在這裡插入圖片描述

我知識整理了部分函式的功能,其他的函式可以參考下面兩個連結: