
T編在日常工作中,常會遇到繁瑣且重複性高的工作,因此自動化處理數據的能力是必要的工具之一。Python的Pandas套件就提供了這樣的能力,它能處理各種數據,並且透過各種方法將數據轉換為有用的資訊。本文將會講解如何使用Pandas進行辦公室日程工作自動化,以及介紹一些常用到的函數。
零、Pandas 是什麼
Pandas是一個Python數據處理和分析庫,它專為解決數據處理問題而設計。Pandas提供了大量的功能,如讀寫數據、數據清洗、數據分析等等,並且能與Excel、CSV等常見的資料表格格式進行讀寫。
壹、常見的自動化應用
- 讀取和寫入Excel文件:一個常見的情況是需要從兩份不同的Excel讀取數據並將其合併,最終導出成一份新的Excel。以下是如何使用Pandas來實現這種任務的範例。
import pandas as pd # 引入套件
# 讀取Excel文件
df_sales = pd.read_excel('sales.xlsx') # 讀取銷售數據
df_products = pd.read_excel('products.xlsx') # 讀取產品資訊| Product_ID | Month | Sales | 
| 1 | January | 100 | 
| 2 | January | 200 | 
| 1 | February | 150 | 
| 2 | February | 250 | 
| 1 | March | 300 | 
| 2 | March | 350 | 
| Product_ID | Product | 
| 1 | Apple | 
| 2 | Orange | 
- 分組並計算出各產品平均銷售額
grouped = df_sales.groupby('Product_ID')['Sales'].mean()
print(grouped)output:
Product_ID
1    183.33
2    266.67
Name: Sales, dtype: float64- 將兩個表格合併
# 根據 Product_ID 將 df_products 與 df_sales 兩個資料表進行合併
merged_df = pd.merge(df_products, df_sales, on='Product_ID')
merged_df| Product_ID | Product | Month | Sales | |
| 0 | 1 | Apple | January | 100 | 
| 1 | 1 | Apple | February | 150 | 
| 2 | 1 | Apple | March | 300 | 
| 3 | 2 | Orange | January | 200 | 
| 4 | 2 | Orange | February | 250 | 
| 5 | 2 | Orange | March | 350 | 
- 表格轉置:讓資料看起來更簡潔明瞭
# 使Product_ID作為索引值、月份作為欄位名稱、銷售額作為我們要使用的值
pivot_df = merged_df.pivot_table(index='Product_ID', columns='Month', values='Sales', aggfunc='sum')
pivot_df| Month | February | January | March | 
| Product | |||
| Apple | 150 | 100 | 300 | 
| Orange | 250 | 200 | 350 | 
- 匯出成Excel:將整理完的數據輸出成一份新的Excel
pivot_df.to_excel('final.xlsx')貳、常用的函式整理
- 讀取與寫入數據:read_csv()可以讀取 CSV 檔案,而to_csv()可以將數據寫入 CSV 檔案。
# 讀取 CSV 檔案
df = pd.read_csv('example.csv')
# 寫入 CSV 檔案
df.to_csv('output.csv', index=False)- 數據查詢與選擇:loc和iloc是兩個常用的方法,可以根據標籤或索引選擇數據。
# 使用標籤選擇數據
df.loc[df['column_name'] == 'value']
# 使用索引選擇數據
df.iloc[0]- 數據處理:dropna()可以刪除含有 NaN 的行或列,fillna()可以填充 NaN 值。
# 刪除含有 NaN 的行
df.dropna()
# 將 NaN 值填充為 0
df.fillna(0)- 數據分析:describe()可以提供數據的統計摘要,groupby()可以根據某些列的值進行數據分組。
# 獲取數據的統計摘要
df.describe()
# 根據某列的值分組
df.groupby('column_name').mean()- 數據轉換:apply()可以對數據應用一個函數,merge()可以根據一或多個鍵將不同的 DataFrame 合併。
# 對數據應用函數
df['column_name'].apply(lambda x: x**2)
# 合併兩個 DataFrame
pd.merge(df1, df2, on='common_column')參、總結
以上簡單介紹了T編在使用 pandas 時較常用到的函式及功能,實務上還有更多更進階的應用可以對數據處理及分析有莫大的助益,以上僅為常用功能的其中一部分。有機會T編再與各位介紹如何透過 pandas 這個套件處裡更深入的辦公室應用,可以使我們平時重複性的工作變得自動化,增進工作上的效率。
 
