1. 程式人生 > >Python3讀寫csv檔案

Python3讀寫csv檔案

新手做機器學習,很多東西都得一點一點積累,第一步從讀寫csv資料檔案開始,檔案中包含列名。

1、讀入csv檔案

import csv

with open("filename.csv","r",encoding="utf-8") as csvfile:
reader = csv.reader(csvfile, delimiter=',')
user_id = []
date = []
####讀取資料到list中
for col in reader:
    user_id.append(col[0])
    date.append(col[1])

將多列資料融合進array

####將多列資料放入array中
x = np.c_[user_id, date]  

當然也可以把資料按縱向拼接,把多行資料拼在一起,用np.r_[x1, x2]
還有一種行堆疊方式np.row_stack((row,y))可以用來在資料輸出前給array資料新增資料頭

將資料寫入csv檔案

csvfile = open('savefile.csv', 'w', newline = '')
writer = csv.writer(csvfile)
writer.writerows(output)
csvfile.close()

在這一步上我遇到了問題,在python3裡直接寫入時,生成的csv檔案用excel開啟可以看到每一行下面都多了一行空白行,網上搜了好久,有說因為需要把資料encode成bytes, 將open()中的‘w’改為‘wb’,但是似乎不適合python3,我修改後仍然不能正常工作。後來找到一個簡單的辦法,只要加入newline = ”即可,不需要修改開啟方式。
順便提醒不要忘記關掉csv檔案。