CodeGym /課程 /Python SELF TW /使用 pandas 寫入數據到 Excel 檔案

使用 pandas 寫入數據到 Excel 檔案

Python SELF TW
等級 27, 課堂 3
開放

嘿,編碼的朋友們好!希望你們的狀態都還不錯,如果不是,希望這堂課讓你們的日子變得好一點。 今天我們來學習如何用超級親切又友善的 pandas 寫入數據到 Excel 檔案。沒錯, 就是你聽過的那個 pandas。這堂課是踏上自動化一切的道路上的重要一步,從撰寫報告到家庭財務記錄都能搞定。如果你曾夢想成為辦公室表格自動化大師(誰沒有?), 那麼你走對路了。

1. 用 pandas 寫數據到 Excel 的基礎

所以呢,假設我們有個 DataFrame,裡面充滿了數字和文字,然後我們想把這些東西變成一個 Excel 檔案。我們要怎麼用 pandas 搞定呢?太簡單了!pandas 有個超棒的函數 to_excel,可以幫我們搞定所有和保存數據相關的問題。

這一切是怎麼運作的?

用 to_excel 方法可以把 DataFrame 寫入 Excel 檔案。這個函數允許我們指定 文件名稱(我們想要保存數據的檔案名稱),比如設置要寫入的工作表名稱。 來看看這個小例子:

Python

import pandas as pd

# 建立一個小的 DataFrame
data = {
    '水果': ['蘋果', '香蕉', '櫻桃'],
    '數量': [10, 5, 2]
}
df = pd.DataFrame(data)

# 把 DataFrame 寫入 Excel 檔案
df.to_excel('fruits.xlsx', sheet_name='最愛的水果', index=False)

print("數據成功寫入文件 'fruits.xlsx'")
    

更深入了解參數

  • 文件名稱: 我們指定名稱為 'fruits.xlsx'。記得添加 '.xlsx' 後綴,不然生成的文件 Excel 可能無法打開。
  • sheet_name: 我們指定名稱為 '最愛的水果',這是 Excel 裡工作表的名字,數據會寫到這張表裡。
  • index: 預設 pandas 會把 DataFrame 的索引寫入作為第一列。 指定 index=False 可以省略索引。

2. 處理多個工作表

如果我們想在同一個 Excel 檔案裡寫入多個工作表的數據呢?更多數據就更有趣!下面 是實現這個操作的例子。

我們會用到 pandas.ExcelWriter,這給我們操作文件更多的靈活性。

Python

# 建立兩個 DataFrame
data1 = {'水果': ['蘋果', '橙子'], '數量': [5, 7]}
data2 = {'蔬菜': ['胡蘿蔔', '白菜'], '數量': [3, 4]}

df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

# 建立有多個工作表的 Excel 檔案
with pd.ExcelWriter('produce.xlsx') as writer:
    df1.to_excel(writer, sheet_name='水果', index=False)
    df2.to_excel(writer, sheet_name='蔬菜', index=False)

print("數據成功寫入文件 'produce.xlsx' 的不同工作表。")
    

為什麼這樣做很有用?

處理多個工作表在數據邏輯上分類是很實用的,比如不同月份的報告、不同產品類別等等。Excel 成為一個通用的容器,讓所有數據集中在一個文件中,但能分佈在不同工作表。

3. 實踐挑戰

現在是挑戰時間了。你將建立一個新的 Excel 檔案,包含書店銷售數據。 你需要創建兩個工作表:一個是 1 月的書籍銷售,另一個是 2 月的書籍銷售。以下是一些數據幫助你啟動:

  • 一月: 書籍 "人人都會 Python" (銷售: 50), "JavaScript 的秘密" (銷售: 30)。
  • 二月: 書籍 "人人都會 Python" (銷售: 70), "JavaScript 的秘密" (銷售: 40)。

嘗試自己實現這個挑戰,然後對照以下範例來檢查你的成果。

Python

# 任務解決範例

# 一月數據
january_data = {'書籍': ['人人都會 Python', 'JavaScript 的秘密'], '銷售': [50, 30]}
january_df = pd.DataFrame(january_data)

# 二月數據
february_data = {'書籍': ['人人都會 Python', 'JavaScript 的秘密'], '銷售': [70, 40]}
february_df = pd.DataFrame(february_data)

# 建立包含兩個月數據的 Excel 檔案
with pd.ExcelWriter('book_sales.xlsx') as writer:
    january_df.to_excel(writer, sheet_name='一月', index=False)
    february_df.to_excel(writer, sheet_name='二月', index=False)

print("數據成功寫入文件 'book_sales.xlsx'。")
    

打開 book_sales.xlsx 文件,檢查裡面的工作表,享受你的傑作吧!

4. 討論解決方案與優化

你可能已經發現,用 pandas 寫入數據到 Excel 是非常簡單的。然而,有幾點需要注意:

  • 記憶體優化: 如果你有巨大的 DataFrame,考慮將數據拆分成小塊來依次保存。
  • 格式化: 你可以添加一些格式化,比如表頭的樣式。這需要用到額外的庫 openpyxl。
  • 多次寫入: 如果頻繁需要寫入同一個文件,可以考慮使用 mode='a' 在 ExcelWriter 裡,追加新數據。

一些未來優化工作的範例

未來,當你成為自動化的王者(或者女王?),你需要能夠找到並修復問題。例如,如果你的公司決定每天生成一個報告表,你可以用 pandas 和 ExcelWriter 自動化這個流程。或許你可以自動排除週末和假日的日期來優化數據處理。

所以,別害怕實驗和優化你的工作!用 Python 和 pandas,你會變得無所不能。

1
任務
Python SELF TW, 等級 27, 課堂 3
上鎖
將主要的 DataFrame 寫入 Excel
將主要的 DataFrame 寫入 Excel
2
任務
Python SELF TW, 等級 27, 課堂 3
上鎖
將多個 DataFrame 寫入一個 Excel 檔案
將多個 DataFrame 寫入一個 Excel 檔案
3
任務
Python SELF TW, 等級 27, 課堂 3
上鎖
處理包含多個工作表的複雜 Excel 檔案
處理包含多個工作表的複雜 Excel 檔案
4
任務
Python SELF TW, 等級 27, 課堂 3
上鎖
自動化數據記錄和報告生成
自動化數據記錄和報告生成
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION