收藏文章 楼主

钱都去哪了?Python来解读

版块:IT/互联网   类型:普通   作者:小羊羔links   查看:269   回复:0   获赞:0   时间:2022-08-01 21:24:00

日常生活中很多朋友都有爱记账的习惯,一方面可以了解日常花销,一方面可能需要单位报销,所以会及时记录。那么,这些数据如果保存在Excel中,通过Python就可以实现日常消费数据的分析,消费数据一目了然、消费趋势了如指掌,效果如图12所示。   

12 日期记账数据分析


核心技术

Pandas获取Excel数据。

日期数据处理利器DataFrame对象to_period()方法。

数据分组统计groupby()函数用法。

数据排序与索引设置。

环形可视化数据分析图表的实现。


实现步骤

1 导入相关模块,代码如下

import matplotlib.pyplot as plt

import pandas as pd

2 DataFrame输出数据对齐,代码如下

解决数据输出时列名不对齐的问题

pd.set_option('display.unicode.ambiguous_as_wide'True)

pd.set_option('display.unicode.east_asian_width'True)

3 获取Excel数据,代码如下

获取数据

df=pd.read_excel('accounts.xlsx')

设置索引按月份显示数据

df=df.set_index('日期',drop=True)

df=df['2019-12'].to_period('M'获取201912月数据

4 按支出类别和日期分组统计数据,代码如下

按支出类别分组统计

df_month=df.groupby(['支出类别','日期'])[['金额']].sum().reset_index()

按金额排序

df_month_sort=df_month[['支出类别','金额']].sort_values(by='金额',ascending=False)

添加行索引

df_month_sort.index=[1,2,3,4,5,6]

print('201912月总支出 ',df_month['金额'].sum(),'')

print('我最爱把钱花在')

print(df_month_sort.rename(columns={'支出类别':'','金额':''})) 设置列名为空输出

5 绘制环形图表,代码如下

plt.rcParams['font.sans-serif']=['SimHei'解决中文乱码

plt.rcParams['axes.unicode_minus'] = False 用来正常显示负号

labels = df_month_sort['支出类别'].values.tolist()

data_percent = df_month_sort['金额'].values.tolist()

colors = ['c''r''y''g''gray','b']

wedges1, texts1, autotexts1 = plt.pie(data_percent,

autopct '%3.1f%%',

radius = 1,

pctdistance = 0.85,

colors = colors,

startangle = 180,

textprops = {'color''w'},

wedgeprops = {'width': 0.4, 'edgecolor''w'}

)

图例

plt.legend(wedges1,

labels,

fontsize = 12,

loc 'center right',

borderaxespad=0., # borderaxespad将图例放外面

frameon=False去掉图例边框

bbox_to_anchor = (1.3, 0.6))

设置文本样式

plt.setp(autotexts1, size=12, weight='bold')

plt.setp(texts1, size=10)

标题

plt.title('我最爱把钱花在'fontsize=20)

plt.show()


小羊羔锚文本外链网站长https://seo-links.cn 
回复列表
默认   热门   正序   倒序

回复:钱都去哪了?Python来解读

Powered by 小羊羔外链网 8.3.11

©2015 - 2024 小羊羔外链网

免费发软文外链 鄂ICP备16014738号-6

您的IP:3.144.172.115,2024-04-19 06:00:35,Processed in 0.05402 second(s).

支持原创软件,抵制盗版,共创美好明天!
头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息