Python 程式札記 : CSV 檔案操作

更新於 發佈於 閱讀時間約 6 分鐘

在數據分析的工作中,處理 CSV 檔案是一項基礎且重要的技能,CSV 格式的檔案是以純文字形式儲存表格數據,簡潔的結構使其普遍應用於數據儲存。本文將介紹如何使用Python 來讀取、處理和儲存 CSV 檔案。

CSV 基礎操作:讀取和寫入

使用 Python 內建的csv模組,就能實現 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 檔案的過程與讀取類似,但使用的是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 進階操作:數據清洗與轉換

在實務工作中,我們往往需要對 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)

😊 感謝你的耐心閱讀,若是你喜歡這篇內容,可以透過以下方式表達你的喜歡 😊

❤️按個愛心|💬留言互動|🔗分享此文|📌追蹤阿梧|☕請喝咖啡

avatar-img
60會員
91內容數
「梧笙」即「吾生」,意即我的生命,朋友都叫我「阿梧(Awu)」,高雄人。我喜歡學習新技能,從程式設計到網路工具,再到社群經營和影片剪輯。日常興趣是打遊戲、看動漫、讀小說和聽音樂。我會把這些興趣寫成文章,如果你有任何想法或問題,歡迎來信到我的郵箱 aowulife109@gmail.com
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
梧笙の領域展開 的其他內容
Python 提供了一個功能豐富的標準函式庫,其中 random 專門用於生成隨機數。本文將介紹 random 的基本介紹,以及函式應用。
lambda 函式,又稱為“匿名函式”,是一種在 Python 中快速定義單行函式的方法,與 def 定義函式不同,lambda 函式不需要命名。本文將介紹 lambda函式的基礎語法,以及實際應用範例演示。
本文將介紹 Python 中的閉包(Closure),我們將從閉包的定義開始介紹,然後是閉包的用途,以及最後的實作範例。
Python 產生器(Generator)是一種特殊的迭代器,能夠以更有效率的方式處理大量數據。本文將介紹產生器的基礎概念、使用方法,並提供實際應用範例
Python 裝飾器(Decorator),它能夠讓你在不改變原始函式的情況下,增加額外的功能。本文將介紹 Python 裝飾器(Decorator)的基本概念、實現方式,並提供實際應用範例讓你更好了解Python 裝飾器。
本文將介紹如何使用 Python 實現 LINE Notify 功能。LINE Notify 允許用戶通過 Line 應用程序接收自定義通知,非常適合於個人項目或業務流程中。LINE Notify 是 LINE 提供的一項功能,允許用戶從他們的應用程序、服務或系統中,透過LINE 發送通知。
Python 提供了一個功能豐富的標準函式庫,其中 random 專門用於生成隨機數。本文將介紹 random 的基本介紹,以及函式應用。
lambda 函式,又稱為“匿名函式”,是一種在 Python 中快速定義單行函式的方法,與 def 定義函式不同,lambda 函式不需要命名。本文將介紹 lambda函式的基礎語法,以及實際應用範例演示。
本文將介紹 Python 中的閉包(Closure),我們將從閉包的定義開始介紹,然後是閉包的用途,以及最後的實作範例。
Python 產生器(Generator)是一種特殊的迭代器,能夠以更有效率的方式處理大量數據。本文將介紹產生器的基礎概念、使用方法,並提供實際應用範例
Python 裝飾器(Decorator),它能夠讓你在不改變原始函式的情況下,增加額外的功能。本文將介紹 Python 裝飾器(Decorator)的基本概念、實現方式,並提供實際應用範例讓你更好了解Python 裝飾器。
本文將介紹如何使用 Python 實現 LINE Notify 功能。LINE Notify 允許用戶通過 Line 應用程序接收自定義通知,非常適合於個人項目或業務流程中。LINE Notify 是 LINE 提供的一項功能,允許用戶從他們的應用程序、服務或系統中,透過LINE 發送通知。
你可能也想看
Google News 追蹤
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
用 PyInstaller 打包一個簡單計算機應用 (GUI 使用 PyQt5) 本教學將帶您使用 PyQt5 建立一個簡單的計算機應用,並透過 PyInstaller 將其打包成執行檔(EXE)。 1. 安裝所需環境 在開始之前,請確保您已安裝以下工具: 必要套件 Python: 建
★★★先到自己電子郵件信箱下載教材上的圖片對照閱讀操作。 利用 pyinstaller 將 .py file 轉換成 windows 常用的 .exe 檔案, ★★★程式最後要加上時間暫停程式,才不會程式結束立刻關閉執行視窗,看不到執行結果。 1.>建立一個新的資料夾,VSC 開啟、選擇此資
★★★先到自己電子郵件信箱下載教材上的圖片對照閱讀操作。 A.>直接使用 python 提供的 IDLE 編輯器操作最方便,先將 IDLE 編輯器釘選在 Windows 工作列上,方便啟動,提示字元為 >>>。 IDLE 編輯器釘選在 Windows 工作列上的操作步驟 1.>點 Wind
Thumbnail
在一個典型的程式專案中,UI、Controller 和 Main 的分工通常遵循 MVC 模型(Model-View-Controller) 的架構,這是一種常見的設計模式,能夠將應用程式的邏輯和界面進行分離。 大部分典型的程式專案設計: UI (View):專注於用戶界面,展示數據,並將用
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
JSON 格式因為其輕巧、易於讀寫的特性,所以普遍應用於數據儲存。本文將介紹如何使用 Python 來讀取、處理、解析和修改 JSON 檔案。
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
用 PyInstaller 打包一個簡單計算機應用 (GUI 使用 PyQt5) 本教學將帶您使用 PyQt5 建立一個簡單的計算機應用,並透過 PyInstaller 將其打包成執行檔(EXE)。 1. 安裝所需環境 在開始之前,請確保您已安裝以下工具: 必要套件 Python: 建
★★★先到自己電子郵件信箱下載教材上的圖片對照閱讀操作。 利用 pyinstaller 將 .py file 轉換成 windows 常用的 .exe 檔案, ★★★程式最後要加上時間暫停程式,才不會程式結束立刻關閉執行視窗,看不到執行結果。 1.>建立一個新的資料夾,VSC 開啟、選擇此資
★★★先到自己電子郵件信箱下載教材上的圖片對照閱讀操作。 A.>直接使用 python 提供的 IDLE 編輯器操作最方便,先將 IDLE 編輯器釘選在 Windows 工作列上,方便啟動,提示字元為 >>>。 IDLE 編輯器釘選在 Windows 工作列上的操作步驟 1.>點 Wind
Thumbnail
在一個典型的程式專案中,UI、Controller 和 Main 的分工通常遵循 MVC 模型(Model-View-Controller) 的架構,這是一種常見的設計模式,能夠將應用程式的邏輯和界面進行分離。 大部分典型的程式專案設計: UI (View):專注於用戶界面,展示數據,並將用
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
JSON 格式因為其輕巧、易於讀寫的特性,所以普遍應用於數據儲存。本文將介紹如何使用 Python 來讀取、處理、解析和修改 JSON 檔案。