微信账单分析

news/2025/3/15 5:06:15/

科二挂了,六级过了,真是大喜大悲的一天啊,下午躺了一下午。

这次写的是用python来做微信账单分析,以我七月份的消费为例,进行分析。
最终达到的效果如下,为了避免泄露博主隐私,消费记录进行了打码
在这里插入图片描述
这里是用python进行分析,配合使用pyecahrts进行分析
微信账单是从微信钱包里导出来的,微信——>支付——>钱包——>账单,导出来的文件是csv格式,以下是部分的截图。
在这里插入图片描述
导入文件,这里写了一个读取的函数,分析上表,我们可以看到实际数据是从第18行进行记录的,因此这里我们写一个count,当count到达17以后,就进行下一步的处理。

#coding:utf8
import csv
def read_csv(filename):csv_file = csv.reader(open(filename,encoding='UTF-8'))count=0for line in csv_file:   #数据类型是列表if count >=17:#print(line[0])  #从17行开始,为主要的内容savedata(line)count+=1

上面的savedata函数是用来分类数据,将其分为“收入”,“支出”,同时这里新建几个全局变量,用来记录分类的结果,并用于之后的分析

#声明全局变量
#支出记录
paymentlist=[]
#收入记录
incomelist=[]
#支出多少笔数据
paymentnum=0
pay=0
#收入多少笔数据
incomenum=0
income=0
def savedata(line):global paymentnumglobal incomenumprint(line[4])if  line[4]=='支出':paymentlist.append(line)paymentnum+=1else:incomelist.append(line)incomenum+=1

以下是收入、支出各自求和的函数,我们分析这个钱,前面有个符号,这是我们不用的,因此是从第1个字符进行读取,且需要转换为浮点型,之前是字符串型。
在这里插入图片描述

#收入求和
def getPayMentlist():all=0for item in paymentlist:# print(float(item[5][1:]))all=all+float(item[5][1:])print(all)return all
#支出求和
def getIncomelist():all=0for item in incomelist:# print(float(item[5][1:]))all=all+float(item[5][1:])print(all)return all

以下的函数做到了各个商铺的消费、支出分类,以及最大消费的识别,使用的是字典,同样定义了一个全局变量。

#支出明细归纳汇总
dict1={}
def getPayment_listDetail():for item2 in paymentlist:x=dict1.get(item2[2])if x ==None:#如果没有这个key,就对字典进行赋值dict1[item2[2]]=float(item2[5][1:])else:#字典中有key对应的value,取出value+现在的值dict1[item2[2]]=dict1[item2[2]]+float(item2[5][1:])max=0maxtitle=""for i in dict1:print(i+':',dict1[i])temp=dict1[i]if max<temp:max=tempmaxtitle=iprint("最大的消费记录:{},{}".format(maxtitle,max))

主函数的执行

read_csv("微信支付账单(20190701-20190801).csv")  #加载主要数据
print("支出笔数:{}".format(paymentnum))
print("收入笔数:{}".format(incomenum))
getPayMentlist()
getIncomelist()
getPayment_listDetail()

下面就是pyecahrts的使用,这个安装自行百度,这里可视化的是前10个的数据,没有按照消费的大小进行。

from pyecharts import Pie
#list是转换为列表
attr = list(dict1.keys())[:10]
v1 = list(dict1.values())[:10]
pie = Pie("饼图示例")
pie.add("",attr,v1,is_label_show=True)
pie.render("七月份消费记录.html")

至此,完成。


http://www.ppmy.cn/news/510510.html

相关文章

轻松记账 教你修改收支记录的步骤

如何记账&#xff0c;比较记账后如何修改或者删除不需要的收支明细呢&#xff1f;今天小编就给大家分享一个记账技巧 &#xff0c;下面小编演示操作步骤&#xff0c;希望能给大家带来帮助&#xff0c;一起来看看吧&#xff01; 第一步&#xff0c;运行【晨曦记账本】在软件主界…

零钱问题

有1块&#xff0c;2块&#xff0c;5块&#xff0c;10块&#xff0c;20块&#xff0c;50块&#xff0c;100块&#xff0c;200块这几种面值的货币&#xff0c;问总共有多少种组合出200块的方法&#xff1f; 循环穷举是通常首先想到的办法 int count0; int a, b, c, d, e, f, g;…

找零钱的两种方法

有时候&#xff0c;去便利店买几块钱的东西&#xff0c;但没有零钱&#xff0c;只能给他们一张100的&#xff0c;他们可能找给我一沓10块的和几枚硬币。我不喜欢这么多的零钱&#xff0c;要知道&#xff0c;钱越零散&#xff0c;散失地就越快&#xff0c;我希望找给我的零钱张数…

零钱有限制和没有限制的找零钱问题

在参加腾讯模拟考的时候&#xff0c;其中的一道编程题是找零钱的问题&#xff0c;但是零钱的数量是一定的&#xff0c;并不是无限的。而且零钱都是2的K次幂&#xff0c;1&#xff0c;2&#xff0c;4&#xff0c;8&#xff0c;16&#xff0c;….每种零钱的数量是 2&#xff0c;给…

MySQL之误删数据如何处理

写在前面 在工作中不管是程序bug&#xff0c;运维的失误&#xff0c;等&#xff0c;都有可能导致数据误删除&#xff0c;或者是误操作&#xff0c;此时我们就必须快速的恢复数据&#xff0c;避免对正常业务造成过大的影响&#xff0c;甚至出现事故&#xff0c;本文我们按照如下…

家庭理财,轻松记账修改收支记录这样操作

我们在记账的时候难免会出现记错或者想修改的地方&#xff0c;又或者是想将之前太久没有用的记账记录删除掉&#xff0c;今天&#xff0c;小编就教大家如何修改收支记录&#xff0c;一起接着往下看吧&#xff01; 第一步&#xff0c;运行【晨曦记账本】在软件主界面中&#xff…

EXCEL如何真正彻底去掉小数点后的数字

EXCEL如何真正彻底去掉小数点后的数字 目录 EXCEL如何真正彻底去掉小数点后的数字 例如&#xff1a; &#xff08;1&#xff09;我们设置不保留小数取整&#xff0c;它的显示效果是19869&#xff0c;但实际上&#xff0c;它的值并没有变&#xff0c;还是19869.1538&#xf…

微信转账记录删除了服务器还有吗,微信转账记录能彻底删除吗?你应该知道的删除技巧是这三种!...

微信转账记录能彻底删除吗&#xff1f;有时我们需要删除微信转账记录&#xff0c;为了自己的账户安全&#xff0c;同时为了保证隐私&#xff0c;但是如何才能彻底删除转账记录呢&#xff1f;相信现在很多小伙伴肯定不知道如何彻底删除&#xff0c;不过没关系&#xff0c;小编找…