Python載入csv檔案的兩種方式

2021-07-05 14:08:42 字數 1958 閱讀 1641

本文主要講解下python載入csv檔案的兩種方式,如果知道如何處理的就不必往下看了!

下面來簡單介紹下。

例項中的資料集是kaggle的digit recognizer的train.csv檔案,資料格式很特別也很普遍,截圖如下:

csv檔案中每行資料的每個特徵列都是用逗號「,」隔開。csv檔案中除了儲存數值外,還有一些屬性值,如第一行以及第一列的label標籤。所以在處理是需要進行相應的處理。

下面介紹下兩種載入這種csv檔案的方法

csv模組中的函式

reader(csvfile, dialect='excel', **fmtparams)
引數說明:

csvfile,必須是支援迭代(iterator)的物件,可以是檔案(file)物件或者列表(list)物件,如果是檔案對

象,開啟時需要加」b」標誌引數。

dialect,編碼風格,預設為excel的風格,也就是用逗號(,)分隔,dialect方式也支援自定義,通過呼叫register_dialect方法來註冊,下文會提到。

fmtparam,格式化引數,用來覆蓋之前dialect物件指定的編碼風格。

載入檔案**:

import csv  

defloadcsvfile1

(): list_file =

with open('train.csv','rb') as csv_file:

all_lines=cvs.reader(csv_file)

for one_line in all_lines:

list_file.remove(list_file[0])

arr_file = array(list_file)

label = arr_file[:, 0]

data = arr_file[:, 1:]

return data, label

載入csv核心部分還是

其中,『rb』中的r表示「讀」模式,因為是檔案物件,所以加『b』。open()返回了乙個檔案物件

myfile,reader(myfile)只傳入了第乙個引數,另外兩個引數採用預設值,即以excel風格讀入。reader()返回乙個

reader物件all_lines,all_lines是乙個list,當呼叫它的方法lines.next()時,會返回乙個string。上面程式的效果是將csv

檔案中的文字按行列印,每一行的元素都是以逗號分隔符』,』分隔得來。

有了numpy,python對於資料的處理可以說是如虎添翼,速度也大大提公升。使用numpy首先要在前面載入numpy庫,**如下:

import numpy as np
對於上面的csv檔案,下面程式用來讀取資料部分:

def

loadcsvfile2

(): tmp = np.loadtxt("train.csv", dtype=np.str, delimiter=",")

data = tmp[1:,1:].astype(np.float)#載入資料部分

label = tmp[1:,0].astype(np.float)#載入類別標籤部分

return data, label #返回array型別的資料

三行**,很簡便。最後的結果是array型別,type為float64

**很簡單,僅供參考!

lua載入csv檔案

文章 author my name date 2013 12 16 18 52 11 csv解析 去掉字串左空白 local function trim left s return string.gsub s,s end 去掉字串右空白 local function trim right s ret...

python使用csv寫入csv檔案

沒什麼好說的,直接上 吧 with open file.csv w encoding utf 8 newline as csvfile writer csv.writer csvfile 首先是表頭 writer.writerow id name gender birthday rating 然後是...

python使用csv讀寫CSV檔案

檔案的讀 import csv with open test.csv r as csv file reader csv.reader csv file for line in reader print line 檔案的寫 import csv 表頭 file header houseinfo hou...