hi,我是曾子 不知道大家有没有手动记账的习惯,我大概从大学开始就坚持记账,中途也换过几个账本APP。目前使用的是圈子账本,它的记账界面如下图所示: 再说说我现在的情况,毕业之后支出越来越多越琐碎,每月的账单多到再手动记账有些过于浪费时间了。 不过有几点让我注意到了,似乎可以实现自动化记账: 一是我目前支出首选信用卡(支付宝、微信也绑定信用卡),几乎全部支出都在这里; 二是圈子账本可以通过上传模板文件来直接上传账单,现在也支持支付宝账单了; 三是我的支出类别比较单一,主要就下面几种: 折中方案根据上面的几点,我搞了个折中的方案,并一直用到现在。 就是电脑登录信用卡官网,手动复制或者下载账单。 然后使用python调整成账本官网支持的格式,导出成excel格式,直接上传至官网。 下面给大家对比一下操作前和操作后的格式: 信用卡里的账单: 官网规定格式: 操作实战先手动复制账单到excel里,先命名为测试数据.xlsx。 然后我们开始使用python处理,导入数据 df = pd.read_excel('测试数据.xlsx',header = None) 每隔三行其实是一条数据,所以我们要跳行提取数据 df2 = pd.DataFrame(columns=['日期','时间','入账金额','交易说明']) 创建了一个df2,并从df中隔行提取数据,结果如下 调整格式下一步调整格式,先参考目标格式要求: df2['时间'] = df2['日期'].apply(lambda x : str(x).replace('00:00:00','')) + df2['时间'].apply(lambda x : str(x)[:-3]) 这样我们就调整好了时间、入账金额(金额)、交易说明(备注),还剩下一个关键的值就是类别,其实我自己的消费类别没几个,可以简单的利用交易说明判断类别,无法分辨的类别归为其他。 def fenlei(comment): 利用上面的函数,就可以统计出类别这一列的值。 其中拉扎斯指的是饿了么,大家查一下自己账单就知道了。至于其他的种类,大家根据自己实际情况改改就可。 另外再添加另外两个固定列,就齐了。 df2['分类'] = df2.apply(lambda x :fenlei(x['交易说明']), axis=1) 这里面我还筛选了只大于0的入账金额,这是为了排除还款记录。
最后结果如下图所示: 导出数据由于这次导出数据要固定格式,所以使用了openpyxl来向官网模板中直接写入,这样导入比较规范。 workbook = load_workbook(filename='朱小五.xlsx') 打开朱小五.xlsx,查看结果 没什么问题,将Excel导入账本官网中 完美导入 再打开手机记账APP 发现账单已经安安静静地躺在账本里啦! 以上就是小五平时利用Python自动化处理自己账本的全部内容了。 如果喜欢我的文章,记得点赞支持哦~ |
|