新手做机器学习,很多东西都得一点一点积累,第一步从读写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文件。