Skip to content

13. 通联数据

PKUJohnson edited this page Aug 11, 2018 · 4 revisions

OpenDataTools通过datayes接口,支持对通联数据网站上的各类数据的获取,要求版本0.6.8以上。

数据来源:通联数据

# 导入模块
from opendatatools import datayes

# 使用前先登录,请先在 https://robo.datayes.com/v2/home 注册用户
user = 'username'
password = 'password'
datayes.login(user, password)

数据结构

通联数据的组织是一个树状结构,如下图所示:

可以一级一级的获取数据目录,直到得到最后的数据项,然后通过数据项

获取顶级分类

datayes.get_top_items()

分类下的子类

# 行业经济目录下的分类
df, msg = datayes.get_sub_items('771263')
df

# 金融保险业的数据
df, msg = datayes.get_sub_items('45678')
df

# 互联网金融行业数据
df, msg = datayes.get_sub_items('556622')
df

# P2P行业数据
df, msg = datayes.get_sub_items('842126')
df

# P2P网贷平台数量
df, msg = datayes.get_sub_items('160793')
df

目录id 数据id 数据项
1052257 1090000885 P2P网贷:平台数:新增
1051771 1090000886 P2P网贷:平台数:累计
386981 2210400004 P2P网贷:平台数:正常运营
1055804 1090000887 P2P网贷:平台数:新增:当月同比
1055036 1090000888 P2P网贷:平台数:累计:当月同比
1054406 1090000889 P2P网贷:平台数:新增停业及问题
1037885 1090000890 P2P网贷:平台数:累计停业及问题

获取数据项的详细数据

# P2P网贷:平台数:正常运营
df, info, msg = datayes.get_series('2210400004')
df.set_index('periodDate', inplace=True)
df

最后我们把这些数据放在一起,看看P2P最近发生了什么

import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

import datetime
def plot_series(seriesid_list):
    
    plt.figure(figsize=(14, 8))
    plt.grid(True)
    
    for seriesid in seriesid_list:
        df, info, msg = datayes.get_series(seriesid)

        time   = [datetime.datetime.strptime(x, "%Y-%m-%d") for x in df['periodDate']]
        values = [float(x) for x in df['dataValue']] 
        plt.plot(time, values, label="{},{},{}".format(info['indicName'], info['frequency'], info['unit']))
    
    plt.xlabel("日期")
    plt.ylabel("数量")
    plt.legend()
    plt.show()

P2P平台数量变化分析

plot_series(['2210400004', '1090000885'])

plot_series(['1090000889', '1090000890'])

看了这两张图,心情无比沉痛,最近跑路的P2P实在太多了,大家要看好自己的钱包啊!!!