Python自動化處理Excel數(shù)據(jù)的操作過程
需求描述:數(shù)據(jù)格式如下所示,需要分離出2023年7月1號之后的數(shù)據(jù)明細
數(shù)據(jù)核對與處理:從Excel文件中提取特定日期后的簽收數(shù)據(jù)
1. 引言
在實際數(shù)據(jù)處理和分析過程中,經(jīng)常會遇到需要從大量數(shù)據(jù)中提取出特定日期范圍內(nèi)的信息的需求。本文將介紹如何使用Python的pandas庫來處理Excel文件,并提取出2023年7月1日之后的簽收數(shù)據(jù)。
2. 準備工作
首先,我們需要導入所需的庫。在本文中,我們將使用pandas
庫來處理Excel文件。
import pandas as pd
3. 設(shè)置顯示選項
為了能夠正確顯示所有列和行,我們可以設(shè)置pandas
的顯示選項。
pd.set_option('display.max_columns', None) pd.set_option('display.max_rows', None)
4. 讀取Excel數(shù)據(jù)文件
接下來,我們使用pd.read_excel()
函數(shù)來讀取Excel文件中的數(shù)據(jù),并指定nrows
參數(shù)來限制讀取的行數(shù)。
data = pd.read_excel('C:\\Users\\Admin\\Desktop\\數(shù)據(jù)核對\\工作簿2.xlsx', nrows=600)
5. 數(shù)據(jù)處理
為了方便后續(xù)操作,我們將DataFrame的索引設(shè)置為“貨件單號”和“SKU”。
data = data.set_index(['貨件單號', 'SKU'])
然后,我們將“簽收明細”這一列進行拆分,并將拆分后的每個數(shù)據(jù)項排成多行。
data = data['簽收明細'].str.split('\n', expand=True).stack().reset_index(level=2, drop=True) data.name = '簽收明細'
接著,我們從拆分后的數(shù)據(jù)中提取出“日期”和“數(shù)量”兩列,并將其轉(zhuǎn)換為正確的數(shù)據(jù)類型。
data = data.str.split(' \| ', expand=True) data.columns = ['日期', '數(shù)量'] data['日期'] = pd.to_datetime(data['日期']) data['數(shù)量'] = pd.to_numeric(data['數(shù)量'])
6. 篩選數(shù)據(jù)并保存結(jié)果
現(xiàn)在,我們可以篩選出2023年7月1日之后的數(shù)據(jù),并將結(jié)果保存到Excel文件中。
result = data[data['日期'] >= '2023-07-01'].reset_index() result.to_excel('2023年7月1號之后簽收數(shù)據(jù).xlsx', index=True)
7. 結(jié)果展示
最后,我們輸出提示信息,顯示結(jié)果已經(jīng)保存到文件中。
print(f"結(jié)果已經(jīng)保存到文件中:2023年7月1號之后簽收數(shù)據(jù).xlsx")
8. 總結(jié)
本文介紹了如何使用Python的pandas庫處理Excel文件,并提取出特定日期范圍內(nèi)的簽收數(shù)據(jù)。通過設(shè)置顯示選項、讀取Excel文件、進行數(shù)據(jù)處理、篩選數(shù)據(jù)并保存結(jié)果,我們能夠高效地處理大量數(shù)據(jù),并得到我們需要的信息
完整代碼:
import pandas as pd # 設(shè)置最大列數(shù)為 None,以顯示所有列 pd.set_option('display.max_columns', None) # 設(shè)置最大行數(shù)為 None,以顯示所有行 pd.set_option('display.max_rows', None) # 讀取Excel數(shù)據(jù)文件 data = pd.read_excel('C:\\Users\\Admin\\Desktop\\數(shù)據(jù)核對\\工作簿2.xlsx', nrows=600) # 輸出全部數(shù)據(jù)(顯示所有行和列) print(data) # 將DataFrame的索引設(shè)置為“貨件單號”和“SKU”,以便后續(xù)操作 data = data.set_index(['貨件單號', 'SKU']) # 將“簽收明細”這一列進行拆分,并將拆分后的每個數(shù)據(jù)項排成多行 data = data['簽收明細'].str.split('\n', expand=True).stack().reset_index(level=2, drop=True) data.name = '簽收明細' # 從拆分后的數(shù)據(jù)中提取“日期”和“數(shù)量”兩列 data = data.str.split(' \| ', expand=True) data.columns = ['日期', '數(shù)量'] data['日期'] = pd.to_datetime(data['日期']) data['數(shù)量'] = pd.to_numeric(data['數(shù)量']) # 篩選出 2023 年 7 月 1 日之后的數(shù)據(jù),并將結(jié)果保存到 Excel 文件中 result = data[data['日期'] >= '2023-07-01'].reset_index() # 篩選符合條件的行,并重置索引 result.to_excel('2023年7月1號之后簽收數(shù)據(jù).xlsx', index=True) # 將結(jié)果保存到 Excel 文件中 # 輸出提示信息 print(f"結(jié)果已經(jīng)保存到文件中:2023年7月1號之后簽收數(shù)據(jù).xlsx")
到此這篇關(guān)于Python自動化處理Excel數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Python 處理Excel數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python 窗體(tkinter)下拉列表框(Combobox)實例
這篇文章主要介紹了Python 窗體(tkinter)下拉列表框(Combobox)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03Django框架之中間件MiddleWare的實現(xiàn)
這篇文章主要介紹了Django框架之中間件MiddleWare的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12基于python2.7實現(xiàn)圖形密碼生成器的實例代碼
本文通過實例代碼給大家介紹了python2.7實現(xiàn)圖形密碼生成器,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2019-11-11python pandas庫中DataFrame對行和列的操作實例講解
今天小編就為大家分享一篇python pandas庫中DataFrame對行和列的操作實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06python改變?nèi)罩?logging)存放位置的示例
示例主要解決的問題是通過傳入日志文件參數(shù)的方式來改變?nèi)罩镜拇娣盼恢?需要的朋友可以參考下2014-03-03