需求描述:資料格式如下所示,需要分離出2023年7月1號之後的資料明細
資料核對與處理:從Excel檔案中提取特定日期後的簽收資料
1. 引言
在實際資料處理和分析過程中,經常會遇到需要從大量資料中提取出特定日期範圍內的資訊的需求。本文將介紹如何使用Python的pandas庫來處理Excel檔案,並提取出2023年7月1日之後的簽收資料。
2. 準備工作
首先,我們需要匯入所需的庫。在本文中,我們將使用pandas
庫來處理Excel檔案。
import pandas as pd
3. 設定顯示選項
為了能夠正確顯示所有列和行,我們可以設定pandas
的顯示選項。
pd.set_option('display.max_columns', None) pd.set_option('display.max_rows', None)
4. 讀取Excel資料檔案
接下來,我們使用pd.read_excel()
函式來讀取Excel檔案中的資料,並指定nrows
引數來限制讀取的行數。
data = pd.read_excel('C:\\Users\\Admin\\Desktop\\資料核對\\工作簿2.xlsx', nrows=600)
5. 資料處理
為了方便後續操作,我們將DataFrame的索引設定為“貨件單號”和“SKU”。
data = data.set_index(['貨件單號', 'SKU'])
然後,我們將“簽收明細”這一列進行拆分,並將拆分後的每個資料項排成多行。
data = data['簽收明細'].str.split('\n', expand=True).stack().reset_index(level=2, drop=True) data.name = '簽收明細'
接著,我們從拆分後的資料中提取出“日期”和“數量”兩列,並將其轉換為正確的資料型別。
data = data.str.split(' \| ', expand=True) data.columns = ['日期', '數量'] data['日期'] = pd.to_datetime(data['日期']) data['數量'] = pd.to_numeric(data['數量'])
6. 篩選資料並儲存結果
現在,我們可以篩選出2023年7月1日之後的資料,並將結果儲存到Excel檔案中。
result = data[data['日期'] >= '2023-07-01'].reset_index() result.to_excel('2023年7月1號之後簽收資料.xlsx', index=True)
7. 結果展示
最後,我們輸出提示資訊,顯示結果已經儲存到檔案中。
print(f"結果已經儲存到檔案中:2023年7月1號之後簽收資料.xlsx")
8. 總結
本文介紹瞭如何使用Python的pandas庫處理Excel檔案,並提取出特定日期範圍內的簽收資料。透過設定顯示選項、讀取Excel檔案、進行資料處理、篩選資料並儲存結果,我們能夠高效地處理大量資料,並得到我們需要的資訊
完整程式碼:
import pandas as pd # 設定最大列數為 None,以顯示所有列 pd.set_option('display.max_columns', None) # 設定最大行數為 None,以顯示所有行 pd.set_option('display.max_rows', None) # 讀取Excel資料檔案 data = pd.read_excel('C:\\Users\\Admin\\Desktop\\資料核對\\工作簿2.xlsx', nrows=600) # 輸出全部資料(顯示所有行和列) print(data) # 將DataFrame的索引設定為“貨件單號”和“SKU”,以便後續操作 data = data.set_index(['貨件單號', 'SKU']) # 將“簽收明細”這一列進行拆分,並將拆分後的每個資料項排成多行 data = data['簽收明細'].str.split('\n', expand=True).stack().reset_index(level=2, drop=True) data.name = '簽收明細' # 從拆分後的資料中提取“日期”和“數量”兩列 data = data.str.split(' \| ', expand=True) data.columns = ['日期', '數量'] data['日期'] = pd.to_datetime(data['日期']) data['數量'] = pd.to_numeric(data['數量']) # 篩選出 2023 年 7 月 1 日之後的資料,並將結果儲存到 Excel 檔案中 result = data[data['日期'] >= '2023-07-01'].reset_index() # 篩選符合條件的行,並重置索引 result.to_excel('2023年7月1號之後簽收資料.xlsx', index=True) # 將結果儲存到 Excel 檔案中 # 輸出提示資訊 print(f"結果已經儲存到檔案中:2023年7月1號之後簽收資料.xlsx")