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...