去年年底,各大App又开始推送年度账单。我点开一看,数字挺大。心里一阵发凉。那些几块几十块的花销,一年下来居然能堆成这个数。
我决定用Python认真算一笔账。先把支付宝和微信的账单导出来,csv格式,直接扔进pandas。代码很简单,读进来,按月份groupby,再累加。结果出来那一刻,我愣住了。
全年总支出比我工资卡里看到的余额多了一大截。我开始逐项排查。吃饭占了大头,外卖和聚餐加起来快两万。打车费也吓人,每天上班两趟,周末出去玩几趟,一年下来小一万。然后是各种视频会员、游戏充值、购物平台自动续费,每个月几十到几百不等,看起来不多,一年一算也有一万多。
最让我注意的是那些小额高频的支付。五六块钱的咖啡、十块钱的停车费、二十块的零食。单看都不起眼。我把这些小于五十块的交易单独拎出来,画了个柱状图。发现这类支出竟然占了总支出的百分之三十七。这就是传说中的拿铁因子,确实在不知不觉中漏掉了。
我又用Python做了个趋势分析。把每月支出画成折线图,能看到明显的波峰。双十一那个月峰值最高,其次是春节前后。假日和促销活动对消费的拉动很直接。我在代码里加了行注释, 这些钱本可以不花。
算完账之后,我给自己列了个表。把那些非必需的开销标出来。比如下午茶、打车、自动续费。加起来看看,发现一年足足花掉了一辆国产车的首付。不是夸张,是真的够付一台比亚迪海鸥或者五菱宏光迷你EV的首付。
拿这个数据跟同事聊,大家都笑。笑完又沉默了。因为每个人打开自己的账单,结果都差不多。那些钱花在哪儿了,自己心里并不清楚。Python只是帮忙把账算清楚了。
代码本身不难。核心代码就几行。用pandas读数据,用matplotlib画图。我把表格处理成按类别汇总的格式,再用几行代码筛出小额高频交易。关键是要有耐心把原始数据清洗干净。支付宝和微信的账单格式不一样,需要做字段映射。这事花了我一个晚上,但看到结果那一刻,觉得值了。
现在每个月月底,我都会跑一次这个脚本。看看这个月超没超预算。账单就像是镜子,清清楚楚照出你的生活方式。代码不会说谎,数据会说话。