【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


相关文章
|
2天前
|
大数据 Python
Python 高级编程:深入探索高级代码实践
本文深入探讨了Python的四大高级特性:装饰器、生成器、上下文管理器及并发与并行编程。通过装饰器,我们能够在不改动原函数的基础上增添功能;生成器允许按需生成值,优化处理大数据;上下文管理器确保资源被妥善管理和释放;多线程等技术则助力高效完成并发任务。本文通过具体代码实例详细解析这些特性的应用方法,帮助读者提升Python编程水平。
20 5
|
7天前
|
Python
Python中的异步编程与协程实践
【9月更文挑战第28天】本文旨在通过一个简单易懂的示例,介绍如何在Python中利用asyncio库实现异步编程和协程。我们将通过代码示例来展示如何编写高效的并发程序,并解释背后的原理。
|
4天前
|
数据可视化 数据挖掘 API
Python中的数据可视化利器:Matplotlib与Seaborn对比解析
在Python数据科学领域,数据可视化是一个重要环节。它不仅帮助我们理解数据,更能够让我们洞察数据背后的故事。本文将深入探讨两种广泛使用的数据可视化库——Matplotlib与Seaborn,通过对比它们的特点、优劣势以及适用场景,为读者提供一个清晰的选择指南。无论是初学者还是有经验的开发者,都能从中找到有价值的信息,提升自己的数据可视化技能。
|
6天前
|
数据可视化 Python
Python数据可视化-动态柱状图可视化
Python数据可视化-动态柱状图可视化
|
6天前
|
JSON 数据可视化 数据处理
Python数据可视化-折线图可视化
Python数据可视化-折线图可视化
|
6天前
|
开发者 Python
探索Python中的异步编程:从理论到实践
【9月更文挑战第29天】 在数字时代的洪流中,我们常常需要处理大量的数据和请求。传统的同步编程模式在某些情况下显得力不从心,而异步编程则提供了另一种解决方案。本文将通过浅显易懂的语言带你了解异步编程的概念,并通过Python语言的示例展示如何应用这一技术来提高程序的执行效率和响应速度。无论你是编程新手还是资深开发者,这篇文章都将为你打开一扇新窗,让你看到不一样的编程世界。
|
7天前
|
数据可视化 Python
使用Python进行数据可视化:从入门到精通
【8月更文挑战第60天】本文是一篇面向初学者的Python数据可视化教程,旨在帮助读者掌握如何使用Python及其强大的库(如Matplotlib和Seaborn)来创建引人入胜的数据可视化。我们将从基础开始,逐步深入,最终达到能够独立完成复杂数据可视化项目的水平。无论你的背景如何,只要你对数据可视化感兴趣,这篇文章都将为你开启一段新的学习之旅。
|
7天前
|
机器学习/深度学习 人工智能 数据挖掘
探索Python的奥秘:从基础到实践
本文深入探讨了Python编程语言的核心概念,从语法基础出发,逐步过渡到实际应用案例,旨在为读者提供一个全面而深入的Python学习视角。不同于传统教程,本文更注重于启发引导与实践结合,帮助读者在理解Python语言哲学的同时,能够将所学知识应用于实际项目中,实现从理论到实践的飞跃。
|
机器学习/深度学习 人工智能 Python
|
1天前
|
机器学习/深度学习 Linux Python
Python编程教学
Python教学
24 13
下一篇
无影云桌面