无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

出納銀行、現(xiàn)金日記賬用pandas實(shí)現(xiàn)財(cái)務(wù)自動(dòng)化的功能和一些思路

2020-10-16 16:54 作者:學(xué)的很雜的一個(gè)人  | 我要投稿

視頻講解請(qǐng)看這里:https://www.bilibili.com/video/BV1CD4y1d7W6/


??????? 由于今年疫情和公司環(huán)境的變化,公司安排我兼任出納職位,我本來(lái)是搞工程技術(shù)的,現(xiàn)在又要兼顧出納崗位,對(duì)財(cái)務(wù)的東西基本沒(méi)有什么了解,可以說(shuō)是一竅不通,小公司為了生存沒(méi)辦法,我只能硬著頭皮接下來(lái)了,正式交接后才發(fā)現(xiàn)工作量不小,發(fā)工資、報(bào)銷費(fèi)用、收付工程賬款、農(nóng)民工工資發(fā)放,社保、醫(yī)保、還要記賬,我看了交接的財(cái)務(wù)資料一天…懵逼了!

??????? 先從日常簡(jiǎn)單重復(fù)的看起,看看能不能用電腦實(shí)現(xiàn)一些自動(dòng)化的操作,解放我的時(shí)間,目前有兩本手寫賬簿,一個(gè)是《現(xiàn)金日記賬》一個(gè)是《銀行日記賬》,摸索了一下,這兩個(gè)相當(dāng)于本質(zhì)上就是出入庫(kù)賬本,就是動(dòng)錢的時(shí)候就要做記錄,按月統(tǒng)計(jì)余額、收付款數(shù)目。那先從這個(gè)入手,這兩個(gè)賬本就用python的pandas庫(kù)來(lái)把紙質(zhì)記錄電子化程序化吧。

先看看這兩本賬的格式,大概都長(zhǎng)這個(gè)樣子,封面不同:

???? 先把數(shù)據(jù)做成下面的格式,保存成csv文件或者電子表格文件也行,我下面得代碼是讀取csv格式的:

?????? 目前實(shí)現(xiàn)的是按月現(xiàn)金類統(tǒng)計(jì)(在每個(gè)月最后一行添加統(tǒng)計(jì)數(shù)據(jù),在余額列逐行計(jì)算并寫入余額),python代碼如下:

import pandas as pd

import numpy as py

import datetime#日期計(jì)算庫(kù)

import calendar#日期計(jì)算庫(kù)

?

?

def cumsum_data(datax):

??? data = datax.copy()#拷貝一份,否則賦值會(huì)有警告

??? data.loc[:,"余額"] = data["借方"].cumsum(0) - data["貸方"].cumsum(0) + data["余額"].cumsum(0)#各項(xiàng)的累計(jì):借方-貸方+余額計(jì)算出當(dāng)前余額

??? jief = data["借方"].sum()

??? daif = data["貸方"].sum()

??? ye = jief - daif + data['余額'][0]

??? #獲得數(shù)據(jù)最后一條得日期

??? ti = data.index[-1]

??? # 獲取當(dāng)月第一天的星期和當(dāng)月的總天數(shù)

??? firstDayWeekDay, monthRange = calendar.monthrange(ti.year, ti.month)

??? #獲取當(dāng)月最后一天

??? lastDay = datetime.date(year=ti.year, month=ti.month, day=monthRange)

??? # 計(jì)算出下個(gè)月第一天

??? next_month = lastDay + datetime.timedelta(days=1)

??? next_month = pd.to_datetime(next_month)#轉(zhuǎn)換數(shù)據(jù)格式

??? total = pd.DataFrame([{'日期':next_month,'交易類型':'現(xiàn)金','經(jīng)辦人':'-','憑據(jù)編號(hào)':'-','摘要':str(data.index.month[-1]) + '月合計(jì)','借方':jief,'貸方':daif,'余額':ye}]).set_index('日期')#計(jì)算合計(jì)行

??? total1 = pd.DataFrame([{'日期':next_month,'交易類型':'現(xiàn)金','經(jīng)辦人':'-','憑據(jù)編號(hào)':'-','摘要':str(data.index.month[-1]) + '月余額','借方':0,'貸方':0,'余額':ye}]).set_index('日期')#計(jì)算余額行,用于下個(gè)月計(jì)算

??? data = data.append(total)#在結(jié)尾添加合計(jì)行

??? return data,total1

?

?

?

#df? = pd.read_excel('test.xlsx')

df = pd.read_csv('data.csv', encoding = 'gbk')

df['日期'] = pd.to_datetime(df['日期']) #將數(shù)據(jù)類型轉(zhuǎn)換為日期類型

df = df.fillna(0)

df = df.set_index('日期')

month = list(set(df.index.month)) #利用集函數(shù)提取月份,不重復(fù)

df_month = df['2020-' + str(month[0])]#df['2020-9']

df_cash = df_month[df_month['交易類型'] == '現(xiàn)金']

df_process,total1 = cumsum_data(df_cash)#計(jì)算余額跟合計(jì)行

for m in month[1:]:

??? df_month = df['2020-' + str(m)]#原始數(shù)據(jù)讀取下個(gè)月數(shù)據(jù)

??? df_cash = df_month[df_month['交易類型'] == '現(xiàn)金']#現(xiàn)金流

??? df_cash = total1.append(df_cash)#在結(jié)尾添加新月份數(shù)據(jù)

??? df_process1,total1 = cumsum_data(df_cash)#計(jì)算余額跟合計(jì)行

??? df_process = df_process.append(df_process1[1:])#在結(jié)尾添加新月份數(shù)據(jù),丟棄第一行再合并

?

df_process.to_csv('現(xiàn)金日記賬.csv',encoding = 'gbk')

df_process

?

輸出如下(并根據(jù)輸出的數(shù)據(jù)保存一份“現(xiàn)金日記賬.csv”的文件):



出納銀行、現(xiàn)金日記賬用pandas實(shí)現(xiàn)財(cái)務(wù)自動(dòng)化的功能和一些思路的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
巴塘县| 永吉县| 石景山区| 西乡县| 云和县| 永善县| 舒兰市| 马公市| 仙游县| 曲松县| 和龙市| 黄大仙区| 光泽县| 沙雅县| 二连浩特市| 雷州市| 青神县| 墨竹工卡县| 漠河县| 祁阳县| 桐城市| 大城县| 南汇区| 浦城县| 江口县| 蓬溪县| 鹤庆县| 武山县| 赤壁市| 嘉定区| 罗甸县| 保山市| 开远市| 玛曲县| 贺兰县| 宁陕县| 隆昌县| 巫山县| 全南县| 阿尔山市| 库伦旗|