【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


相关文章
|
27天前
|
Python
深入理解Python装饰器:从入门到实践####
本文旨在通过简明扼要的方式,为读者揭开Python装饰器的神秘面纱,从基本概念、工作原理到实际应用场景进行全面解析。不同于常规的摘要仅概述内容概要,本文将直接以一段精炼代码示例开篇,展示装饰器如何优雅地增强函数功能,激发读者探索兴趣,随后深入探讨其背后的机制与高级用法。 ####
51 11
|
24天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
20天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第42天】本文将介绍如何使用Python进行数据分析和可视化。我们将从数据导入、清洗、探索性分析、建模预测,以及结果的可视化展示等方面展开讲解。通过这篇文章,你将了解到Python在数据处理和分析中的强大功能,以及如何利用这些工具来提升你的工作效率。
|
23天前
|
设计模式 缓存 开发框架
Python中的装饰器:从入门到实践####
本文深入探讨了Python中装饰器的工作原理与应用,通过具体案例展示了如何利用装饰器增强函数功能、提高代码复用性和可读性。读者将学习到装饰器的基本概念、实现方法及其在实际项目开发中的实用技巧。 ####
26 3
|
26天前
|
机器学习/深度学习 数据采集 数据可视化
Python在数据科学中的应用:从入门到实践
本文旨在为读者提供一个Python在数据科学领域应用的全面概览。我们将从Python的基础语法开始,逐步深入到数据处理、分析和可视化的高级技术。文章不仅涵盖了Python中常用的数据科学库,如NumPy、Pandas和Matplotlib,还探讨了机器学习库Scikit-learn的使用。通过实际案例分析,本文将展示如何利用Python进行数据清洗、特征工程、模型训练和结果评估。此外,我们还将探讨Python在大数据处理中的应用,以及如何通过集成学习和深度学习技术来提升数据分析的准确性和效率。
|
25天前
|
数据采集 IDE 测试技术
Python实现自动化办公:从基础到实践###
【10月更文挑战第21天】 本文将探讨如何利用Python编程语言实现自动化办公,从基础概念到实际操作,涵盖常用库、脚本编写技巧及实战案例。通过本文,读者将掌握使用Python提升工作效率的方法,减少重复性劳动,提高工作质量。 ###
46 1
|
27天前
|
机器学习/深度学习 数据采集 人工智能
探索机器学习:从理论到Python代码实践
【10月更文挑战第36天】本文将深入浅出地介绍机器学习的基本概念、主要算法及其在Python中的实现。我们将通过实际案例,展示如何使用scikit-learn库进行数据预处理、模型选择和参数调优。无论你是初学者还是有一定基础的开发者,都能从中获得启发和实践指导。
41 2
|
19天前
|
数据采集 数据可视化 数据挖掘
掌握Python数据分析,解锁数据驱动的决策能力
掌握Python数据分析,解锁数据驱动的决策能力
|
27天前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
27天前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南