Python如何讀寫CSV文件
CSV文件是一種純文本文件,它使用特定的結(jié)構(gòu)來(lái)排列表格數(shù)據(jù)。
CSV文件內(nèi)容看起來(lái)應(yīng)該是下面這樣的:
column 1 name,column 2 name, column 3 namefirst row data 1,first row data 2,first row data 3second row data 1,second row data 2,second row data 3...
每段數(shù)據(jù)是如何用逗號(hào)分隔的。通常,第一行標(biāo)識(shí)每個(gè)數(shù)據(jù)塊——換句話說(shuō),數(shù)據(jù)列的名稱。之后的每一行都是實(shí)際數(shù)據(jù),僅受文件大小限制。
CSV文件通常由處理大量數(shù)據(jù)的程序創(chuàng)建。它們是一種從電子表格和數(shù)據(jù)庫(kù)導(dǎo)出數(shù)據(jù)以及導(dǎo)入或在其他程序中使用數(shù)據(jù)的方便方法。例如,您可以將數(shù)據(jù)挖掘程序的結(jié)果導(dǎo)出到CSV文件中,然后將其導(dǎo)入到電子表格中,以分析數(shù)據(jù)、為演示生成圖表或準(zhǔn)備發(fā)布報(bào)告。
CSV文件非常容易通過(guò)編程處理。任何支持文本文件輸入和字符串操作的語(yǔ)言(如Python)都可以直接使用CSV文件。
讀取CSV文件內(nèi)容
在Python中,使用csv庫(kù)來(lái)讀取CSV文件內(nèi)容。在讀文件之前,先創(chuàng)建一個(gè)a.csv的文件,內(nèi)容是下面這樣:
名字,部門,月份John Smith,Accounting,NovemberErica Meyers,IT,March
文件創(chuàng)建完成后,開始編寫讀取文件內(nèi)容的程序:
import csvwith open(’a.csv’) as csv_file: csv_reader = csv.reader(csv_file,delimiter=’,’) line_count = 0 for row in csv_reader: if line_count == 0: print(f’Column names are {', '.join(row)}’) line_count += 1 else: print(f’t{row[0]} works in the {row[1]} department, and was born in {row[2]}.’) line_count += 1 print(f’Processed {line_count} lines.’)
寫入數(shù)據(jù)到CSV文件
上面編寫了讀取內(nèi)容的程序,下面繼續(xù)編寫一個(gè)寫文件的程序。我們寫到b.csv文件中。
import csvwith open(’b.csv’, mode=’w’) as employee_file: employee_writer = csv.writer(employee_file, delimiter=’,’, quotechar=’'’, quoting=csv.QUOTE_MINIMAL) employee_writer.writerow([’John Smith’, ’Accounting’, ’November’]) employee_writer.writerow([’Erica Meyers’, ’IT’, ’March’])
如果你感覺(jué)使用csv庫(kù)讀寫效率比較地下,或者編寫的代碼太多。下面我介紹一種更高效的方法。
用pandas讀csv
假設(shè)我們有一個(gè)c.csv文件,具體內(nèi)容如下:
Name,Hire Date,Salary,Sick Days remainingGraham Chapman,03/15/14,50000.00,10John Cleese,06/01/15,65000.00,8Eric Idle,05/12/14,45000.00,10Terry Jones,11/01/13,70000.00,3Terry Gilliam,08/12/14,48000.00,7Michael Palin,05/23/13,66000.00,8
用pandas讀取csv:
import pandasdf = pandas.read_csv(’hrdata.csv’)print(df)# 輸出的df# Name Hire Date Salary Sick Days remaining# 0 Graham Chapman 03/15/14 50000.0 10# 1 John Cleese 06/01/15 65000.0 8# 2 Eric Idle 05/12/14 45000.0 10# 3 Terry Jones 11/01/13 70000.0 3# 4 Terry Gilliam 08/12/14 48000.0 7# 5 Michael Palin 05/23/13 66000.0 8
用pandas寫csv
讓我們用新的列名將數(shù)據(jù)寫入一個(gè)新的CSV文件:
import pandasdf = pandas.read_csv(’hrdata.csv’, index_col=’Employee’, parse_dates=[’Hired’], header=0, names=[’Employee’, ’Hired’, ’Salary’, ’Sick Days’])df.to_csv(’d.csv’)# d.csv文件內(nèi)容# Employee,Hired,Salary,Sick Days# Graham Chapman,2014-03-15,50000.0,10# John Cleese,2015-06-01,65000.0,8# Eric Idle,2014-05-12,45000.0,10# Terry Jones,2013-11-01,70000.0,3# Terry Gilliam,2014-08-12,48000.0,7# Michael Palin,2013-05-23,66000.0,8
如果你了解讀取CSV文件的基礎(chǔ)知識(shí),那么當(dāng)您需要處理導(dǎo)入數(shù)據(jù)時(shí),就不會(huì)手足無(wú)措。基本的CSV Python庫(kù)可以輕松地處理大多數(shù)CSV讀取、處理和編寫任務(wù)。如果你有很多數(shù)據(jù)要讀取和處理,panda庫(kù)還提供了快速和簡(jiǎn)單的CSV處理功能。
以上就是Python如何讀寫CSV文件的詳細(xì)內(nèi)容,更多關(guān)于Python讀寫CSV文件的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. vue實(shí)現(xiàn)移動(dòng)端返回頂部2. asp讀取xml文件和記數(shù)3. vue 驗(yàn)證兩次輸入的密碼是否一致的方法示例4. xml中的空格之完全解說(shuō)5. 多個(gè)SpringBoot項(xiàng)目采用redis實(shí)現(xiàn)Session共享功能6. python基于scrapy爬取京東筆記本電腦數(shù)據(jù)并進(jìn)行簡(jiǎn)單處理和分析7. python利用opencv實(shí)現(xiàn)顏色檢測(cè)8. CSS自定義滾動(dòng)條樣式案例詳解9. Python如何實(shí)現(xiàn)感知器的邏輯電路10. PHP實(shí)現(xiàn)基本留言板功能原理與步驟詳解
