Python如何讀寫CSV檔案

2021-10-17 02:12:19 字數 3023 閱讀 3158

csv檔案是一種純文字檔案,它使用特定的結構來排列**資料。

csv檔案內容看起來應該是下面這樣的:

column 1 name,column 2 name, column 3 name first row data 1,first row data 2,first row data 3 second row data 1,second row data 2,second row data 3 ...

每段資料是如何用逗號分隔的。通常,第一行標識每個資料塊——換句話說,資料列的名稱。之後的每一行都是實際資料,僅受檔案大小限制。

csv檔案通常由處理大量資料的程式建立。它們是一種從電子**和資料庫匯出資料以及匯入或在其他程式中使用資料的方便方法。例如,您可以將資料探勘程式的結果匯出到csv檔案中,然後將其匯入到電子**中,以分析資料、為演示生成圖表或準備發布報告。

csv檔案非常容易通過程式設計處理。任何支援文字檔案輸入和字串操作的語言(如python)都可以直接使用csv檔案。

讀取csv檔案內容

在python中,使用csv庫來讀取csv檔案內容。在讀檔案之前,先建立乙個a.csv的檔案,內容是下面這樣:

名字,部門,月份 john smith,accounting,november erica meyers,it,march

檔案建立完成後,開始編寫讀取檔案內容的程式:

import csv

with 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 ')

line_count += 1

else:

print(f'\t works in the department, and was born in .')

line_count += 1

print(f'processed lines.')

寫入資料到csv檔案

上面編寫了讀取內容的程式,下面繼續編寫乙個寫檔案的程式。我們寫到b.csv檔案中。

import csv

with 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'])

如果你感覺使用csv庫讀寫效率比較地下,或者編寫的**太多。下面我介紹一種更高效的方法。

用pandas讀csv

假設我們有乙個c.csv檔案,具體內容如下:

name,hire date,salary,sick days remaining graham chapman,03/15/14,50000.00,10 john cleese,06/01/15,65000.00,8 eric idle,05/12/14,45000.00,10 terry jones,11/01/13,70000.00,3 terry gilliam,08/12/14,48000.00,7 michael palin,05/23/13,66000.00,8

用pandas讀取csv:

import pandas

df = 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

讓我們用新的列名將資料寫入乙個新的csv檔案:

import pandas

df = 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檔案內容

# 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

Python讀寫csv檔案

1.寫入並生成csv檔案 coding utf 8 import csv csvfile file csv test.csv wb writer csv.writer csvfile writer.writerow 姓名 年齡 data 小河 25 1234567 小芳 18 789456 writ...

python 讀寫csv檔案

1.忽略第一行標題的基礎上 python2.7 coding utf 8 import csv csv reader csv.reader open r c users thinkpad desktop tweets.csv for row in csv reader 條件語句忽略第一行檔案資料 i...

python 讀寫csv檔案

1.將dataframe資料寫入csv 1 用 csv包一行一行的寫入 import csv python2可以用file替代open with open test.csv w as csvfile writer csv.writer csvfile 先寫入columns name writer.w...