溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何利用Python實(shí)現(xiàn)自動(dòng)生成數(shù)據(jù)日?qǐng)?bào)

發(fā)布時(shí)間:2022-07-12 10:22:47 來(lái)源:億速云 閱讀:238 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“如何利用Python實(shí)現(xiàn)自動(dòng)生成數(shù)據(jù)日?qǐng)?bào)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“如何利用Python實(shí)現(xiàn)自動(dòng)生成數(shù)據(jù)日?qǐng)?bào)”吧!

需求詳解

朋友的需求是這樣的,他們平時(shí)的銷售數(shù)據(jù)是記錄在Excel上,匯總后會(huì)按照部門進(jìn)行統(tǒng)計(jì)。但是今年年初時(shí),領(lǐng)導(dǎo)突然要求寫日?qǐng)?bào),大家寫了一個(gè)月發(fā)現(xiàn)并不檢查就沒(méi)繼續(xù)寫下去。

如何利用Python實(shí)現(xiàn)自動(dòng)生成數(shù)據(jù)日?qǐng)?bào)

Excel日?qǐng)?bào)數(shù)據(jù)

現(xiàn)在突然被要求明天交本月之前的所有日?qǐng)?bào),這相當(dāng)于要補(bǔ)2-5月將近120天的日?qǐng)?bào),如果靠雙手復(fù)制粘貼,那估計(jì)要吐血了。朋友將其寫日?qǐng)?bào)的相關(guān)文件都發(fā)了過(guò)來(lái),發(fā)現(xiàn)最終日?qǐng)?bào)效果如下所示。

如何利用Python實(shí)現(xiàn)自動(dòng)生成數(shù)據(jù)日?qǐng)?bào)

所以需求也就是比較簡(jiǎn)單了,只需要從Excel表格中讀取每日的數(shù)據(jù),使用Python將其處理后,再依次寫入Word文檔中,即可實(shí)現(xiàn)批量生成日?qǐng)?bào)。

數(shù)據(jù)處理

在進(jìn)行數(shù)據(jù)處理之前,要先了解最終需要哪些數(shù)據(jù)。如下圖所示,在目標(biāo)日?qǐng)?bào)Word中主要分為兩類:紅色標(biāo)記的數(shù)值主要是由當(dāng)日的數(shù)據(jù)、或者由它們計(jì)算后得到的數(shù)據(jù)構(gòu)成;綠色標(biāo)記的表格則更簡(jiǎn)單了,就是近七日的數(shù)據(jù)(銷售數(shù)量、銷售金額、銷售目標(biāo)、完成度)。

如何利用Python實(shí)現(xiàn)自動(dòng)生成數(shù)據(jù)日?qǐng)?bào)

首先我們導(dǎo)入Pandas模塊進(jìn)行數(shù)據(jù)處理

import pandas as pd
df = pd.read_excel("日?qǐng)?bào)數(shù)據(jù).xlsx")
df

輸出結(jié)果

如何利用Python實(shí)現(xiàn)自動(dòng)生成數(shù)據(jù)日?qǐng)?bào)

導(dǎo)入數(shù)據(jù)后,接著就可以按照我們的需求,來(lái)進(jìn)行數(shù)據(jù)運(yùn)算了。數(shù)據(jù)運(yùn)算主要分為兩種,一種是利用加 +、減 -、乘 *、除 / 進(jìn)行數(shù)據(jù)運(yùn)算,另一種是利用統(tǒng)計(jì)方法進(jìn)行數(shù)據(jù)運(yùn)算。

在交互式環(huán)境中輸入如下命令:

df["日期"] = df["日期"].apply(lambda x:x.strftime("%Y-%m-%d"))
df["當(dāng)日完成度"] = (df["銷售金額"]/df["銷售目標(biāo)"]*100).round(1)
df["累計(jì)銷售金額"] = df["銷售金額"].cumsum()
df["當(dāng)年完成度"] = (df["累計(jì)銷售金額"]/2200000*100).round(1)
df["累計(jì)銷售金額"] = (df["累計(jì)銷售金額"]/10000).round(2)
df

輸出結(jié)果:

如何利用Python實(shí)現(xiàn)自動(dòng)生成數(shù)據(jù)日?qǐng)?bào)

可以看到,最終結(jié)果截圖中紅色標(biāo)記的數(shù)據(jù)內(nèi)容已經(jīng)全部被計(jì)算出來(lái)。而綠色標(biāo)記的表格則更加簡(jiǎn)單了,使用Pandas模塊中的數(shù)據(jù)選取即可。

在交互式環(huán)境中輸入如下命令:

num = 10
df.iloc[num-7:num, :5]

輸出結(jié)果:

如何利用Python實(shí)現(xiàn)自動(dòng)生成數(shù)據(jù)日?qǐng)?bào)

通過(guò)這種方法就可以輕松得到某一日期的過(guò)去7日內(nèi)的日?qǐng)?bào)數(shù)據(jù)合集。

感謝各位的閱讀,以上就是“如何利用Python實(shí)現(xiàn)自動(dòng)生成數(shù)據(jù)日?qǐng)?bào)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)如何利用Python實(shí)現(xiàn)自動(dòng)生成數(shù)據(jù)日?qǐng)?bào)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI