Python:自动获取和展示中国宏观杠杆率数据

Python:自动获取和展示中国宏观杠杆率数据

在之前的教程中我分别展示了如何使用 Stata 和 R 自动获取和展示中国宏观杠杆率数据,昨天整理教程才发现一直以来都忘记写 Python 的了,所以今天特意补上。

国家资产负债表研究中心 CNBS 会再他们的服务器上定期推出 中国宏观杠杆率数据,是下面这个样子的:

在左下角有个数据下载按钮,点击就可以下载数据了,下载链接为:http://114.115.232.154:8080/handler/download.ashx ,下载之后会得到这个 xlsx 文件,这个文件的内容是这样的:

如果我们经常需要用这个数据,然后每次要用的时候都要打开这个网站下载,而且这个网站的网址还是个 IP 地址,谁记得住啊!所以如果我们能写个小程序自动获取然后整理好这个数据,最好再配个画图的功能。

那么我们先用 Python 完成下载数据、整理数据、图表绘制这三个操作。

首先导入需要的模块:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

下载数据的方法很多,这里我用的是 requests 包。

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

下载之后得到一个 "leverage.xlsx" 文件,可以用 pandas 包读入:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

其实我们不需要下载再读取的,而是可以一步到位:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

这样我们就获取了这份数据,下面再绘图展示:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

可用的绘图风格有:[‘seaborn-dark’, ‘seaborn-darkgrid’, ‘seaborn-ticks’, ‘fivethirtyeight’, ‘seaborn-whitegrid’, ‘classic’, ‘_classic_test‘, ‘fast’, ‘seaborn-talk’, ‘seaborn-dark-palette’, ‘seaborn-bright’, ‘seaborn-pastel’, ‘grayscale’, ‘seaborn-notebook’, ‘ggplot’, ‘seaborn-colorblind’, ‘seaborn-muted’, ‘seaborn’, ‘Solarize_Light2’, ‘seaborn-paper’, ‘bmh’, ‘tableau-colorblind10’, ‘seaborn-white’, ‘dark_background’, ‘seaborn-poster’, ‘seaborn-deep’]

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

绘制出来的图是这样的:

类的封装

同样我们使用类进行封装以方便调用:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

使用这个类:

1
2
3
4
5
6
# 类的使用
l = leverage()
# 获取数据
mydf = l.get_leverage()
# 绘图
l.plot()

该类中的其它变量:

1
2
3
4
5
6
7
8
9
10
11
l.Source
#> 'Center for National Balance Sheets (CNBS)'

l.LeverageRatio
#> 'Debt/Nominal GDP'

l.Unit
#> 'Percent'

l.DataBase
#> "China's Macro Leverage Ratio Database"

把 leverge 类单独保存为一个文件

把下面的代码单独存放在一个名为 leverage.py 的文件:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

然后你就可以使用下面的方式调用 leverage.py 里面的类了!

1
2
3
4
from leverage import *
l = leverage()
l.DataBase
l.plot()

知识星球附件链接:https://t.zsxq.com/b2fynAi

#

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×