【Python】数据分析与可视化实践:收支日统计数据可视化的实现 Python数据分析与可视化实践:收支日统计数据可视化的实现

简介: 【Python】数据分析与可视化实践:收支日统计数据可视化的实现Python数据分析与可视化实践:收支日统计数据可视化的实现

数据读入与基本处理

9ad15732a92f2b4e55e8c35451c4e471_2571021-20230518085442673-1067857711.png

上图是原始数据的一部分,存放于excel中,首先使用pd读入数据。读入数据后,删除不是收入,也不是支出的行。

# 读取数据datas=pd.read_excel("账单.xlsx", sheet_name=0)
# 删除不是收入也不是支出datas=datas.drop(datas[datas["收/支"]=="/"].index)


折线图x轴标签准备

该折线图x轴,显示日期,因此,需要从原数据中取出日期,形成一个由不重复日期构成的列表(即这个列表中的日期不会重复)

x=datas["交易时间"].unique()

7b5c7d8cfdc9d834fcfbc009038e3264_2571021-20230518085442343-1970343234.png

这个数据太冗长了,作为标签的话放不下,因此需要处理一下,因为都是2022年的,所以取出月份和日就可以了。在此,使用了正则表达式的方式处理。

rule=r"2022-(.*?)T00"# 正则规则x_label= ["{}".format(re.findall(rule,str(i))[0]) foriinx]
x_label

c8e6129b70665821ef4e9d549c91c57d_2571021-20230518085442002-1304649346.png

到此,图表的x轴准备完毕。


问:为什么要在这里准备好x轴标签呢?

答:

我们可能今天只有收入,没有支出,

可能昨天没有支出,只有收入,

可能前天支出收入都没有。

这里准备的x轴标签,包含了支出,收入的日期(只要你一天中有支出,或者有收入,这一天都要被作为标签)。


接下来就是数据了。


收入与支出数据的准备

# 获取收入情况data_shouru=datas[datas["收/支"]=="收入"]
data_shouru_x=data_shouru["交易时间"].unique()
data_shouru_y=data_shouru.groupby(["交易时间"]).sum()["金额(元)"]
data_shouru_y

data_shouru_x 是 有收入的日期 构成的列表,data_shouru_y是日期对应金额构成的列表。

data_shouru_x的列表长度<=x

一天之中可能有多个收入,要统计起来,因此需要使用groupby结合sum()根据日期统计金额,然后通过列名取出统计出来的金额

8efe236ad7c9756fd2fe9aaae6aba5ea_2571021-20230518085441519-6788241.png

处理支出同理

# 获取支出情况data_zhichu=datas[datas["收/支"]=="支出"]
data_zhichu_x=data_zhichu["交易时间"].unique()
data_zhichu_y=data_zhichu.groupby(["交易时间"]).sum()["金额(元)"]
data_zhichu_y


画图

plt.figure(figsize=(10,5),dpi=100)  # 创建画布plt.grid(True, linestyle="--", alpha=0.5)  # 添加网格# 添加描述plt.title("支出情况", fontsize=24)
plt.xlabel("日期")
plt.ylabel("金额")
# 显示图例plt.plot(data_shouru_x,data_shouru_y, color="r", linestyle="-", label="收入")  # 绘画plt.plot(data_zhichu_x, data_zhichu_y, color="b", linestyle="--", label="支出")  # 绘画plt.xticks(x,x_label,rotation=45)
plt.legend(loc="upper right")  # 显示图例必须在绘制时设置好plt.savefig("折线图")
plt.show()

6f17309534f08edc5bf0318654f48c57_2571021-20230518085440853-1635164485.png


相关文章
|
5月前
|
数据可视化 关系型数据库 MySQL
基于python大数据的的海洋气象数据可视化平台
针对海洋气象数据量大、维度多的挑战,设计基于ECharts的可视化平台,结合Python、Django与MySQL,实现数据高效展示与交互分析,提升科研与决策效率。
|
5月前
|
存储 数据采集 监控
Python定时爬取新闻网站头条:从零到一的自动化实践
在信息爆炸时代,本文教你用Python定时爬取腾讯新闻头条,实现自动化监控。涵盖请求、解析、存储、去重、代理及异常通知,助你构建高效新闻采集系统,适用于金融、电商、媒体等场景。(238字)
916 2
|
6月前
|
数据采集 Web App开发 自然语言处理
新闻热点一目了然:Python爬虫数据可视化
新闻热点一目了然:Python爬虫数据可视化
|
6月前
|
数据采集 数据可视化 关系型数据库
基于python大数据的电影数据可视化分析系统
电影分析与可视化平台顺应电影产业数字化趋势,整合大数据处理、人工智能与Web技术,实现电影数据的采集、分析与可视化展示。平台支持票房、评分、观众行为等多维度分析,助力行业洞察与决策,同时提供互动界面,增强观众对电影文化的理解。技术上依托Python、MySQL、Flask、HTML等构建,融合数据采集与AI分析,提升电影行业的数据应用能力。
机器学习/深度学习 算法 自动驾驶
1184 0
|
6月前
|
存储 人工智能 算法
Python实现简易成语接龙小游戏:从零开始的趣味编程实践
本项目将中国传统文化与编程思维相结合,通过Python实现成语接龙游戏,涵盖数据结构、算法设计与简单AI逻辑,帮助学习者在趣味实践中掌握编程技能。
593 0
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
1535 4
数据分析的 10 个最佳 Python 库
|
SQL 数据挖掘 Python
数据分析编程:SQL,Python or SPL?
数据分析编程用什么,SQL、python or SPL?话不多说,直接上代码,对比明显,明眼人一看就明了:本案例涵盖五个数据分析任务:1) 计算用户会话次数;2) 球员连续得分分析;3) 连续三天活跃用户数统计;4) 新用户次日留存率计算;5) 股价涨跌幅分析。每个任务基于相应数据表进行处理和计算。

热门文章

最新文章

推荐镜像

更多