在數據分析的工作中,處理 CSV 檔案是一項基礎且重要的技能,CSV 格式的檔案是以純文字形式儲存表格數據,簡潔的結構使其普遍應用於數據儲存。本文將介紹如何使用Python 來讀取、處理和儲存 CSV 檔案。
使用 Python 內建的csv
模組,就能實現 CSV 檔案的讀取與寫入操作。
要讀取 CSV 檔案,首先要導入csv
模組,然後使用csv.reader
函數,以下是一個簡單的範例:
import csv
with open('example.csv', newline='') as csvfile:
csvreader = csv.reader(csvfile, delimiter=',')
for row in csvreader:
print(', '.join(row))
在這個範例中,csv.reader
用於讀取檔案,delimiter
參數指定了字段的分隔符號(在這個範例中是逗號)。接著我們遍歷csvreader
物件,將每行數據列印出來。
寫入 CSV 檔案的過程與讀取類似,但使用的是csv.writer
物件,以下是一個寫入CSV檔案的範例:
import csv
data = [
['FirstName', 'LastName', 'Age', 'City'],
['Alice', 'Smith', '23', 'New York'],
['Bob', 'Johnson', '19', 'Los Angeles'],
['Charlie', 'Brown', '35', 'Chicago'],
['Diana', 'Davis', '20', 'Boston']
]
with open('example.csv', mode='w', newline='') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(data)
這裡,我們使用csv.writer
來創建一個寫入器物件,然後使用writerow
方法來寫入每一行數據。
在實務工作中,我們往往需要對 CSV 檔案進行更複雜的操作,如數據清洗、轉換。
數據清洗涉及到從原始數據中移除錯誤、不完整或不相關的部分。例如,如果我們想要移除所有年齡小於20的行,可以這樣做:
import csv
cleaned_data = []
header = None
with open('example.csv', newline='') as csvfile:
csvreader = csv.reader(csvfile)
header = next(csvreader) # 跳過標題行
for row in csvreader:
if int(row[2]) >= 20: # 假設年齡是第三列
cleaned_data.append(row)
# 將清洗後的數據寫回新的CSV檔案
with open('cleaned_data.csv', mode='w', newline='') as new_file:
csvwriter = csv.writer(new_file)
csvwriter.writerow(header)
for row in cleaned_data:
csvwriter.writerow(row)
數據轉換則涉及更改數據的格式或結構,例如將某些字段合併或分割。以下是一個將名字和姓氏合併的例子:
import csv
transformed_data = []
header = None
with open('example.csv', newline='') as csvfile:
csvreader = csv.reader(csvfile)
original_header = next(csvreader) # 讀取原始標題行
header = ['Full Name'] + original_header[2:] # 創建新的標題行,合併姓氏和名字為全名
for row in csvreader:
full_name = row[0] + ' ' + row[1] # 假設名字和姓氏是前兩列
transformed_data.append([full_name] + row[2:])
with open('transformed_data.csv', mode='w', newline='') as new_file:
csvwriter = csv.writer(new_file)
csvwriter.writerow(header)
for row in transformed_data:
csvwriter.writerow(row)
😊 感謝你的耐心閱讀,若是你喜歡這篇內容,可以透過以下方式表達你的喜歡 😊