Python讀寫(xiě)csv文件流程及異常解決
逗號(hào)分隔值(Comma-Separated Values,CSV,有時(shí)也稱為字符分隔值,因?yàn)榉指糇址部梢圆皇嵌禾?hào)),其文件以純文本形式存儲(chǔ)表格數(shù)據(jù)(數(shù)字和文本)。純文本意味著該文件是一個(gè)字符序列,不含必須像二進(jìn)制數(shù)字那樣被解讀的數(shù)據(jù)。CSV文件由任意數(shù)目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最常見(jiàn)的是逗號(hào)或制表符。通常,所有記錄都有完全相同的字段序列.
特點(diǎn)
讀取出的數(shù)據(jù)一般為字符類型,如果是數(shù)字需要人為轉(zhuǎn)換為數(shù)字 以行為單位讀取數(shù)據(jù) 列之間以半角逗號(hào)或制表符為分隔,一般為半角逗號(hào) 一般為每行開(kāi)頭不空格,第一行是屬性列,數(shù)據(jù)列之間以間隔符為間隔無(wú)空格,行之間無(wú)空行。行之間無(wú)空行十分重要,如果有空行或者數(shù)據(jù)集中行末有空格,讀取數(shù)據(jù)時(shí)一般會(huì)出錯(cuò),引發(fā)[list index out of range]錯(cuò)誤。PS:已經(jīng)被這個(gè)錯(cuò)誤坑過(guò)很多次!
使用python I/O寫(xiě)入和讀取CSV文件
使用PythonI/O寫(xiě)入csv文件


常見(jiàn)錯(cuò)誤list index out of range
其中我們重點(diǎn)需要講的是 with open(birth_weight_file, 'w', newline=’’) as f: 這個(gè)語(yǔ)句。表示寫(xiě)入csv文件,如果不加上參數(shù) newline=’’ 表示以空格作為換行符,而是用 with open(birth_weight_file, 'w') as f: 語(yǔ)句。則生成的表格中會(huì)出現(xiàn)空行。

不僅僅是用python I/O進(jìn)行csv數(shù)據(jù)的讀寫(xiě)時(shí),利用其余方法讀寫(xiě)csv數(shù)據(jù),或者從網(wǎng)上下載好csv數(shù)據(jù)集后都需要查看其每行后有沒(méi)有空格,或者有沒(méi)有多余的空行。避免不必要的錯(cuò)誤~影響數(shù)據(jù)分析時(shí)的判斷。
使用PythonI/O讀取csv文件
使用python I/O方法進(jìn)行讀取時(shí)即是新建一個(gè)List 列表然后按照先行后列的順序(類似C語(yǔ)言中的二維數(shù)組)將數(shù)據(jù)存進(jìn)空的List對(duì)象中,如果需要將其轉(zhuǎn)化為numpy 數(shù)組也可以使用np.array(List name)進(jìn)行對(duì)象之間的轉(zhuǎn)化。

使用Pandas讀取CSV文件

使用Tensorflow讀取CSV文件
本人在平時(shí)一般都是使用Tensorflow處理各類數(shù)據(jù),所以對(duì)于使用Tensorflow讀取數(shù)據(jù)在此不過(guò)多的進(jìn)行解釋。

還有其他使用python讀取文件的各種方法,這里介紹三種,不定期進(jìn)行補(bǔ)充。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. CentOS郵箱服務(wù)器搭建系列——SMTP服務(wù)器的構(gòu)建( Postfix )2. PHP基礎(chǔ)之生成器4——比較生成器和迭代器對(duì)象3. ASP新手必備的基礎(chǔ)知識(shí)4. Docker 啟動(dòng)Redis 并設(shè)置密碼的操作5. asp文件用什么軟件編輯6. 通過(guò)IEAD+Maven快速搭建SSM項(xiàng)目的過(guò)程(Spring + Spring MVC + Mybatis)7. JS中6個(gè)對(duì)象數(shù)組去重的方法8. vue+element開(kāi)發(fā)一個(gè)谷歌插件的全過(guò)程9. 利用CSS制作3D動(dòng)畫(huà)10. Vue axios獲取token臨時(shí)令牌封裝案例

網(wǎng)公網(wǎng)安備