日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

工作中經常會用到對賬單,一般我們都是用Excel進行匯總,每次總是有大量的重復工作,很是煩人,今天我教大家用Python/ target=_blank class=infotextkey>Python一鍵生成對賬單,非常省事,再也不用加班加點了。

python 一鍵生成對賬單

 

一、準備基礎數據

首先,我們用Excel創建三張基礎數據表,其中sheet1重新命名為客戶銷售明細表,sheet2預收款明細表,sheet3期初余額表。如圖:(我這里的三張表,都放在了我的電腦桌面上,一個叫賬戶平衡表.xlsx的Excel工作簿中,你也可以建三個工作簿分別存放,圖2、圖3、圖4中可看到我的基礎數據表,里面有三個sheet表,并已重命名,且每一張表都預輸入了客戶相關信息。)

 

python 一鍵生成對賬單

圖1


python 一鍵生成對賬單

圖2


python 一鍵生成對賬單

圖3


python 一鍵生成對賬單

圖4

二、要求

輸入客戶名稱,一鍵調出客戶銷售明細及賬戶余額等信息。

三、思路

由于數據分別存放在三張表上,所以我們最關鍵的步驟就是要合并三張表,然后寫搜索條件代碼即可。

四、寫代碼

1、導入pandas模塊

import pandas as pd

 

python 一鍵生成對賬單

 

2、導入數據并處理空值

df1=pd.read_excel(r"C:UsersAdministratorDesktop賬戶平衡表.xlsx",sheet_name='客戶銷售明細')

df2=pd.read_excel(r"C:UsersAdministratorDesktop賬戶平衡表.xlsx",sheet_name='預收款')

df3=pd.read_excel(r"C:UsersAdministratorDesktop賬戶平衡表.xlsx",sheet_name='期初余額')

df1.fillna(0,inplace=True)

df2.fillna(0,inplace=True)

df3.fillna(0,inplace=True)

3、設置要查詢的變量

name='客戶名稱'

4、設置要查詢的字段

list1=['customer','product','單位','單價','發貨','調貨','退貨','實銷','運費']

list2=['customer','本期預收_玉米','本期預收_小麥']

list3=['customer','期初余額_玉米','期初余額_小麥']

df1=df1[list1]

df2=df2[list2]

df3=df3[list3]

5、分別對三個表進行分類匯總

表1

df1=df1.groupby(['customer','product','單價']).sum()

df1.reset_index('product',inplace=True,drop=False)

df1.reset_index(inplace=True)

df1=df1[df1['customer']==name]

df1.reset_index(inplace=True)

df1

del df1['index']

df1

效果如下圖:

 

python 一鍵生成對賬單

 

表2

df2.groupby(['customer']).sum()

df2=df2[df2['customer']==name]

df2.reset_index(inplace=True,drop=False)

df2

del df2['index']

del df2['customer']

df2

 

 

python 一鍵生成對賬單

 

表3

df3.groupby(['customer']).sum()

df3=df3[df3['customer']==name]

df3.reset_index(inplace=True,drop=False)

df3

del df3['index']

del df3['customer']

5、三表合并

df2=df1.merge(df2,left_index=True,right_index=True,how='left')

df3=df2.merge(df3,left_index=True,right_index=True,how='left')

df3

df3.fillna(0,inplace=True)

df3

效果如下:

python 一鍵生成對賬單

 

6、對合并后的總表進行相關計算

df3['銷售額']=df3['實銷']*df3['單價']

df3['應收賬款_玉米']=df3['銷售額']-df3['運費']-df3['本期預收_玉米']+df3['期初余額_玉米']

df3['應收賬款_小麥']=df3['期初余額_小麥']-df3['本期預收_小麥']

df3['應收賬款']=df3['應收賬款_玉米']+df3['應收賬款_小麥']

df3.fillna(0,inplace=True)

df3

效果如下:

python 一鍵生成對賬單

 

7、整理結果

order=['customer','product','發貨','調貨','退貨','實銷','單價','銷售額','運費','期初余額_玉米','本期預收_玉米','應收賬款_玉米','期初余額_小麥','本期預收_小麥','應收賬款_小麥','應收賬款']

df4=df3[order]

df4=pd.pivot_table(df4,index=['customer','product','單價'],aggfunc=sum,margins=True)

df4.reset_index(inplace=True)

df4=df4[order]

df4

對賬單結果:

python 一鍵生成對賬單

 

關鍵步驟總結:

1、分別導入三個基礎表

2、分別匯總三個表,并按條件進行篩選

3、將三個符合條件的表合并

4、整理輸出結果

 

今天的文章至此結束,如有不妥,請在下方留言評論。歡迎點贊、收藏、關注和評論。

分享到:
標簽:python
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定