最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
滦平县| 穆棱市| 外汇| 长沙县| 扶余县| 长汀县| 阆中市| 滦平县| 宜兰市| 伊宁县| 象山县| 枝江市| 高唐县| 两当县| 定陶县| 康定县| 专栏| 辽源市| 雷山县| 昌乐县| 滁州市| 漳州市| 马关县| 东丰县| 文安县| 陇南市| 新乐市| 丹江口市| 阳城县| 云阳县| 阿荣旗| 四川省| 隆化县| 武陟县| 酒泉市| 厦门市| 六安市| 乐清市| 绥芬河市| 东宁县| 左云县|