Python csv文件記錄流程代碼解析
1、合并所有測試集和訓練集的文件:
使用cmd到所在盤下,輸入copy *.CSV all_***.csv即可
2、單獨提取異常數據列作為csv文件:
import csvimport codecs#coding:utf-8with open('G:data_releasetrain1.0all_train.csv','rt',encoding='utf-8')as f:reader=csv.DictReader(f)column=[row[’triggername’] for row in reader]file_name='G:data_releasetrain1.0triggername.csv'file_csv = codecs.open(file_name,’w+’,’utf-8’)writer = csv.writer(file_csv, delimiter=’ ’, quotechar=’ ’, quoting=csv.QUOTE_MINIMAL)for data in column: writer.writerow(data)
雖然可以寫入,但是出現亂碼原因應該為csv的BOM沒有更改
解決方法:將encoding=’utf8’改為encoding=’gb18030’
但是打開文件發現并不是所有內容都在第一列,有一些出現第二列,原因是一句話里面出現了逗號
解決方法:遍歷列表將逗號改為空格
i=0while i < len(column):column[i].replace(',',' ')i+=1
不知道怎么的不適合我用的csv文件,還在繼續檢查中
3、刪除一些字符,如果知道字符的位置可以在列表的基礎上進行操作
去除首部空格 line=line.lstrip()
4、導入一個csv文件的時候 data = pd.read_csv(’G:pytorchdata1.csv’,encoding=’utf-8’)
報錯的內容是這樣的:
UnicodeDecodeError: ’utf-8’ codec can’t decode byte 0xc9 in position 0: invalid continuation byte
修改至data = pd.read_csv(’F:data1.csv’, encoding=’unicode_escape’,header=None,sep = ’t’,error_bad_lines=False)也沒有用
刪除整行重復項:
from more_itertools import unique_everseenwith open(’F:data1.csv’,’r’) as f, open(’F:data2.csv’,’w’) as out_file: out_file.writelines(unique_everseen(f))
5、unexpected index是代碼的縮進出現問題
6、文本文件用rt,二進制文件用rb打開
with open('fer2013.csv', 'rt', encoding='utf-8') as vsvfile: reader = csv.reader(vsvfile) rows = [row for row in reader] print(rows)
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章:
