Python自動化處理Excel數(shù)據(jù)的操作過程
需求描述:數(shù)據(jù)格式如下所示,需要分離出2023年7月1號之后的數(shù)據(jù)明細(xì)
數(shù)據(jù)核對與處理:從Excel文件中提取特定日期后的簽收數(shù)據(jù)
1. 引言
在實(shí)際數(shù)據(jù)處理和分析過程中,經(jīng)常會遇到需要從大量數(shù)據(jù)中提取出特定日期范圍內(nèi)的信息的需求。本文將介紹如何使用Python的pandas庫來處理Excel文件,并提取出2023年7月1日之后的簽收數(shù)據(jù)。
2. 準(zhǔn)備工作
首先,我們需要導(dǎo)入所需的庫。在本文中,我們將使用pandas
庫來處理Excel文件。
import pandas as pd
3. 設(shè)置顯示選項(xiàng)
為了能夠正確顯示所有列和行,我們可以設(shè)置pandas
的顯示選項(xiàng)。
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'])
然后,我們將“簽收明細(xì)”這一列進(jìn)行拆分,并將拆分后的每個(gè)數(shù)據(jù)項(xiàng)排成多行。
data = data['簽收明細(xì)'].str.split('\n', expand=True).stack().reset_index(level=2, drop=True) data.name = '簽收明細(xì)'
接著,我們從拆分后的數(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è)置顯示選項(xiàng)、讀取Excel文件、進(jìn)行數(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']) # 將“簽收明細(xì)”這一列進(jìn)行拆分,并將拆分后的每個(gè)數(shù)據(jù)項(xiàng)排成多行 data = data['簽收明細(xì)'].str.split('\n', expand=True).stack().reset_index(level=2, drop=True) data.name = '簽收明細(xì)' # 從拆分后的數(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 爬蟲學(xué)習(xí)筆記之正則表達(dá)式
正則表達(dá)式是用來匹配字符串非常強(qiáng)大的工具,在其他編程語言中同樣有正則表達(dá)式的概念,Python同樣不例外,利用了正則表達(dá)式,我們想要從返回的頁面內(nèi)容提取出我們想要的內(nèi)容就易如反掌了。2016-09-09使用pytorch時(shí)所遇到的一些問題總結(jié)
這篇文章主要介紹了使用pytorch時(shí)所遇到的一些問題總結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05Python 窗體(tkinter)下拉列表框(Combobox)實(shí)例
這篇文章主要介紹了Python 窗體(tkinter)下拉列表框(Combobox)實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03Django框架之中間件MiddleWare的實(shí)現(xiàn)
這篇文章主要介紹了Django框架之中間件MiddleWare的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12使用Python開發(fā)一個(gè)圖像標(biāo)注與OCR識別工具
這篇文章主要介紹了一個(gè)使用Python開發(fā)的工具,允許用戶在圖像上進(jìn)行矩形標(biāo)注,使用 OCR 對標(biāo)注區(qū)域進(jìn)行文本識別,并將結(jié)果保存為 Excel 文件,感興趣的可以了解下2025-03-03基于python2.7實(shí)現(xiàn)圖形密碼生成器的實(shí)例代碼
本文通過實(shí)例代碼給大家介紹了python2.7實(shí)現(xiàn)圖形密碼生成器,代碼簡單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-11-11python pandas庫中DataFrame對行和列的操作實(shí)例講解
今天小編就為大家分享一篇python pandas庫中DataFrame對行和列的操作實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06python改變?nèi)罩?logging)存放位置的示例
示例主要解決的問題是通過傳入日志文件參數(shù)的方式來改變?nèi)罩镜拇娣盼恢?需要的朋友可以參考下2014-03-03