Python載入csv檔案的兩種方式__Python

來源:互聯網
上載者:User

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

下面來簡單介紹下。

執行個體中的資料集是kaggle的Digit Recognizer的train.csv檔案,資料格式很特別也很普遍,截圖如下:

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

下面介紹下兩種載入這種csv檔案的方法 方法一:使用Python的csv模組

csv模組中的函數

reader(csvfile, dialect='excel', **fmtparams)

參數說明:
csvfile,必須是支援迭代(Iterator)的對象,可以是檔案(file)對象或者列表(list)對象,如果是檔案對
象,開啟時需要加”b”標誌參數。

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

fmtparam,格式化參數,用來覆蓋之前dialect對象指定的編碼風格。

負載檔案代碼:

import csv  def loadCSVfile1():    list_file = []    with open('train.csv','rb') as csv_file:          all_lines=cvs.reader(csv_file)          for one_line in all_lines:              list_file.append(one_line)      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
檔案中的文本按行列印,每一行的元素都是以逗號分隔字元’,’分隔得來。 方法一:使用Python的numpy庫

有了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

代碼很簡單,僅供參考。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.