在實際資料處理和分析過程中,經常會遇到需要從大量資料中提取出特定日期範圍內的資訊的需求。本文將介紹如何使用Python的pandas庫來處理Excel檔案,並提取出2023年7月1日之後的簽收資料。
首先,我們需要匯入所需的庫。在本文中,我們將使用pandas
庫來處理Excel檔案。
import pandas as pd
為了能夠正確顯示所有列和行,我們可以設定pandas
的顯示選項。
pd.set_option('display.max_columns', None) pd.set_option('display.max_rows', None)
接下來,我們使用pd.read_excel()
函數來讀取Excel檔案中的資料,並指定nrows
引數來限制讀取的行數。
data = pd.read_excel('C:\\Users\\Admin\\Desktop\\資料核對\\工作簿2.xlsx', nrows=600)
為了方便後續操作,我們將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)
最後,我們輸出提示資訊,顯示結果已經儲存到檔案中。
print(f"結果已經儲存到檔案中:2023年7月1號之後簽收資料.xlsx")
本文介紹瞭如何使用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")