亚洲国产日韩人妖另类,久久只有这里有精品热久久,依依成人精品视频在线观看,免费国产午夜视频在线

      
      

        python 一鍵生成對賬單

        python 一鍵生成對賬單

        工作中經(jīng)常會用到對賬單,一般我們都是用Excel進(jìn)行匯總,每次總是有大量的重復(fù)工作,很是煩人,今天我教大家用python一鍵生成對賬單,非常省事,再也不用加班加點了。

        一、準(zhǔn)備基礎(chǔ)數(shù)據(jù)

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

        圖1

        圖2

        圖3

        圖4

        二、要求

        輸入客戶名稱,一鍵調(diào)出客戶銷售明細(xì)及賬戶余額等信息。

        三、思路

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

        四、寫代碼

        1、導(dǎo)入pandas模塊

        import pandas as pd

        2、導(dǎo)入數(shù)據(jù)并處理空值

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

        df2=pd.read_excel(r”C:UsersAdministratorDesktop賬戶平衡表.xlsx”,sheet_name=’預(yù)收款’)

        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、設(shè)置要查詢的變量

        name=’客戶名稱’

        4、設(shè)置要查詢的字段

        list1=[‘customer’,’product’,’單位’,’單價’,’發(fā)貨’,’調(diào)貨’,’退貨’,’實銷’,’運費’]

        list2=[‘customer’,’本期預(yù)收_玉米’,’本期預(yù)收_小麥’]

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

        df1=df1[list1]

        df2=df2[list2]

        df3=df3[list3]

        5、分別對三個表進(jìn)行分類匯總

        表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

        效果如下圖:

        表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

        表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

        效果如下:

        6、對合并后的總表進(jìn)行相關(guān)計算

        df3[‘銷售額’]=df3[‘實銷’]*df3[‘單價’]

        df3[‘應(yīng)收賬款_玉米’]=df3[‘銷售額’]-df3[‘運費’]-df3[‘本期預(yù)收_玉米’]+df3[‘期初余額_玉米’]

        df3[‘應(yīng)收賬款_小麥’]=df3[‘期初余額_小麥’]-df3[‘本期預(yù)收_小麥’]

        df3[‘應(yīng)收賬款’]=df3[‘應(yīng)收賬款_玉米’]+df3[‘應(yīng)收賬款_小麥’]

        df3.fillna(0,inplace=True)

        df3

        效果如下:

        7、整理結(jié)果

        order=[‘customer’,’product’,’發(fā)貨’,’調(diào)貨’,’退貨’,’實銷’,’單價’,’銷售額’,’運費’,’期初余額_玉米’,’本期預(yù)收_玉米’,’應(yīng)收賬款_玉米’,’期初余額_小麥’,’本期預(yù)收_小麥’,’應(yīng)收賬款_小麥’,’應(yīng)收賬款’]

        df4=df3[order]

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

        df4.reset_index(inplace=True)

        df4=df4[order]

        df4

        對賬單結(jié)果:

        關(guān)鍵步驟總結(jié):

        1、分別導(dǎo)入三個基礎(chǔ)表

        2、分別匯總?cè)齻€表,并按條件進(jìn)行篩選

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

        4、整理輸出結(jié)果

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

        鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
        上一篇 2022年7月2日 06:35
        下一篇 2022年7月2日 06:35

        相關(guān)推薦

        聯(lián)系我們

        聯(lián)系郵箱:admin#wlmqw.com
        工作時間:周一至周五,10:30-18:30,節(jié)假日休息