1. 程式人生 > 程式設計 >Python csv檔案記錄流程程式碼解析

Python csv檔案記錄流程程式碼解析

1、合併所有測試集和訓練集的檔案:

使用cmd到所在盤下,輸入copy *.CSV all_***.csv即可

2、單獨提取異常資料列作為csv檔案:

import csv
import codecs
#coding:utf-8
with open("G:\\data_release\\train1.0\\all_train.csv","rt",encoding="utf-8")as f:
reader=csv.DictReader(f)
column=[row['triggername'] for row in reader]
file_name="G:\\data_release\\train1.0\\triggername.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=0
while i < len(column):
column[i].replace(","," ")
i+=1

不知道怎麼的不適合我用的csv檔案,還在繼續檢查中

3、刪除一些字元,如果知道字元的位置可以在列表的基礎上進行操作

去除首部空格 line=line.lstrip()

4、匯入一個csv檔案的時候 data = pd.read_csv('G:\pytorch\data1.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_everseen
with 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",encoding="utf-8") as vsvfile:
   reader = csv.reader(vsvfile)
   rows = [row for row in reader]
      print(rows)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。