Python讀寫csv文件流程及異常解決
逗號分隔值(Comma-Separated Values,CSV,有時也稱為字符分隔值,因為分隔字符也可以不是逗號),其文件以純文本形式存儲表格數(shù)據(jù)(數(shù)字和文本)。純文本意味著該文件是一個字符序列,不含必須像二進(jìn)制數(shù)字那樣被解讀的數(shù)據(jù)。CSV文件由任意數(shù)目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最常見的是逗號或制表符。通常,所有記錄都有完全相同的字段序列.
特點
- 讀取出的數(shù)據(jù)一般為字符類型,如果是數(shù)字需要人為轉(zhuǎn)換為數(shù)字
- 以行為單位讀取數(shù)據(jù)
- 列之間以半角逗號或制表符為分隔,一般為半角逗號
- 一般為每行開頭不空格,第一行是屬性列,數(shù)據(jù)列之間以間隔符為間隔無空格,行之間無空行。
行之間無空行十分重要,如果有空行或者數(shù)據(jù)集中行末有空格,讀取數(shù)據(jù)時一般會出錯,引發(fā)[list index out of range]錯誤。PS:已經(jīng)被這個錯誤坑過很多次!
使用python I/O寫入和讀取CSV文件
使用PythonI/O寫入csv文件
常見錯誤list index out of range
其中我們重點需要講的是 with open(birth_weight_file, "w", newline='') as f: 這個語句。表示寫入csv文件,如果不加上參數(shù) newline='' 表示以空格作為換行符,而是用 with open(birth_weight_file, "w") as f: 語句。則生成的表格中會出現(xiàn)空行。
不僅僅是用python I/O進(jìn)行csv數(shù)據(jù)的讀寫時,利用其余方法讀寫csv數(shù)據(jù),或者從網(wǎng)上下載好csv數(shù)據(jù)集后都需要查看其每行后有沒有空格,或者有沒有多余的空行。避免不必要的錯誤~影響數(shù)據(jù)分析時的判斷。
使用PythonI/O讀取csv文件
使用python I/O方法進(jìn)行讀取時即是新建一個List 列表然后按照先行后列的順序(類似C語言中的二維數(shù)組)將數(shù)據(jù)存進(jìn)空的List對象中,如果需要將其轉(zhuǎn)化為numpy 數(shù)組也可以使用np.array(List name)進(jìn)行對象之間的轉(zhuǎn)化。
使用Pandas讀取CSV文件
使用Tensorflow讀取CSV文件
本人在平時一般都是使用Tensorflow處理各類數(shù)據(jù),所以對于使用Tensorflow讀取數(shù)據(jù)在此不過多的進(jìn)行解釋。
還有其他使用python讀取文件的各種方法,這里介紹三種,不定期進(jìn)行補(bǔ)充。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python機(jī)器學(xué)習(xí)應(yīng)用之基于線性判別模型的分類篇詳解
線性判別分析(Linear?Discriminant?Analysis,?LDA)是一種監(jiān)督學(xué)習(xí)的降維方法,也就是說數(shù)據(jù)集的每個樣本是有類別輸出。和之前介紹的機(jī)器學(xué)習(xí)降維之主成分分析(PCA)方法不同,PCA是不考慮樣本類別輸出的無監(jiān)督學(xué)習(xí)方法2022-01-01python?windows安裝cuda+cudnn+pytorch教程
這篇文章主要介紹了python?windows安裝cuda+cudnn+pytorch教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05Python3轉(zhuǎn)換html到pdf的不同解決方案
今天小編就為大家分享一篇關(guān)于Python3轉(zhuǎn)換html到pdf的不同解決方案,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03Python?PaddleNLP開源實現(xiàn)快遞單信息抽取
這篇文章主要為大家介紹了Python?PaddleNLP開源項目實現(xiàn)對快遞單信息抽取,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06