用python幫財務小姐姐自動生成財務報表

用python幫財務小姐姐自動生成財務報表

公司財務小姐姐每月需要根據如下報表統計出本月、上月、去年同期的銷售額、客流量、客單價數據:

用python幫財務小姐姐自動生成財務報表

每個月都要手動計算,非常耗費時間,本著樂於助人的原則,我用python寫了個小程序,能夠實現自動生成財務報表,現把具體過程分享給大家:

一、pandas導入數據源

<code>import pandas as pd
data=pd.read_csv('數據模板.csv',encoding='gbk',parse_dates=["成交時間"])
data
/<code>
用python幫財務小姐姐自動生成財務報表

parse_dates可以將成交時間列轉換成時間格式

二、pandas計算相關指標

先給大家介紹一下指標的計算方式:

<code>銷售額=單價*銷量客流量=訂單id去重後的次數客單價=銷售額/客流量/<code>

1.計算上月數據

通過pandas比較功能,取出本月數據,&為比較運算符,相當於“與”

<code>from datetime import datetime
current_m=data[(data["成交時間"]>=datetime(2020,2,1))&(data["成交時間"]<=datetime(2020,2,28))]
current_m
/<code>
用python幫財務小姐姐自動生成財務報表

銷售額計算

<code>current_s=(current_m['銷量']*current_m['單價']).sum()
current_s
/<code>
<code>sum是pandas中的求和函數,用於返回用戶所請求軸的值之和。/<code>

客流量計算

<code>current_t=current_m['訂單ID'].drop_duplicates().count()
current_t
/<code>
<code>drop_duplicatesop:去重函數count:計數函數/<code>

客單價計算

<code>curent_s_t=round(current_s/current_t,2)
curent_s_t
/<code>

2.計算上月數據

計算方式是一樣的,只不過把日期範圍調整一下,代碼如下:

<code>from datetime import datetime
last_m=data[(data["成交時間"]>=datetime(2020,1,1))&(data["成交時間"]<=datetime(2020,1,31))]
last_s=(last_m['銷量']*last_m['單價']).sum()
last_t=last_m['訂單ID'].drop_duplicates().count()
last_s_t=round(last_s/last_t,2)
/<code>

3.計算去年同期數據

<code>from datetime import datetime
same_m=data[(data["成交時間"]>=datetime(2019,2,1))&(data["成交時間"]<=datetime(2019,2,28))]
same_s=(same_m['銷量']*same_m['單價']).sum()
same_t=same_m['訂單ID'].drop_duplicates().count()
same_s_t=round(same_s/same_t,2)
/<code>

4.將上述數據轉成DataFrame表格型數據結構

<code>result=pd.DataFrame([[current_s,last_s,same_s],[current_t,last_t,same_t],[curent_s_t,last_s_t,same_s_t]],columns=["本月","上月同期","去年同期"],index=["銷售額","客流量","客單價"])
result
/<code>
用python幫財務小姐姐自動生成財務報表

5.增加同比和環比數據


<code>result["同比"]=result["本月"]/result["上月同期"]-1
result["環比"]=result["本月"]/result["去年同期"]-1
result
/<code> 
用python幫財務小姐姐自動生成財務報表

自動化報表的模板基本已經做好了,等下月需要時,只需改一下時間,運行程序即可,省去了大量的人工計算時間

三、可視化展示

用plotly畫出柱狀圖

<code>import plotly.graph_objs as go
columns=["本月","上月同期","去年同期"]
fig = go.Figure(data=[
    go.Bar(name='銷售額',x=columns,y=[current_s,last_s,same_s]),
    go.Bar(name='客流量',x=columns,y=[current_t,last_t,same_t]),
    go.Bar(name='客單價',x=columns,y=[curent_s_t,last_s_t,same_s_t]),])
fig.update_layout(barmode='group')
fig.show()
/<code>
用python幫財務小姐姐自動生成財務報表

點擊右上角標籤,可以展示不同的參數圖形


-完-


完整代碼請關注公眾號【python數據分析之禪】並回復財務報表獲取


分享到:


相關文章: