手里有大量的统计数据,但都是零散的Excel表,不利于查看,分析和统计。原先在Superset上部署了一个可视化平台,但同事反映不会用,主要是对数据库的查询语句,数据关系不了解,导致难上手,就想能不能有一种更简单的方法,能让新手也自助开展分析。
对于搭建数据可视化分析平台,主要有以下必个步骤:
处理流程图.png▌数据收集
就是把基础数据收集起来,我的基础数据都是Excel表,每个月一份。放在同一个目录下。
▌数据整理
这个需要使用python的pandas库,对数据进行抽取、转换、整理后直接放到一个文件中。
其中有几个技巧:
filenames = glob.glob(filedir) #遍历文件夹下的所有文件 ,返回文件名列表
遍历文件夹下的所有文件 ,返回文件名列表
我这个例子中,共有两张表,分别用两个函数提取,并保存为两个文件。
# -*- coding: utf-8 -*-
"""
Created on Mon Nov 27 12:31:51 2017
@author: javawilder
"""
import pandas as pd
import numpy as np
from pandas.io import sql
import glob
def getJigou(filedir,savefilename):
farmes = pd.DataFrame(columns=['机构名称','存款余额','比上月增减额','存款比上月增减幅','存款比年初增减额','存款比年初增减幅','存款增减额同比多增额','存款同比增减额','存款同比增减幅','贷款余额','贷款比上月增减额','贷款比上月增减幅','贷款比年初增减额','贷款比年初增减幅','贷款增减额同比多增额','贷款同比增减额','贷款同比增减幅','贷款1月至今累放','贷款1月至今累收','存贷比','时间'])
filenames = glob.glob(filedir)
for filename in filenames:
df = pd.read_excel(filename, sheetname = u'分机构',encoding='unicode')
month = str(df.loc[0].values[0:1])
data = df.ix[6:21,0:20]
data.columns = ['机构名称','存款余额','比上月增减额','存款比上月增减幅','存款比年初增减额','存款比年初增减幅','存款增减额同比多增额','存款同比增减额','存款同比增减幅','贷款余额','贷款比上月增减额','贷款比上月增减幅','贷款比年初增减额','贷款比年初增减幅','贷款增减额同比多增额','贷款同比增减额','贷款同比增减幅','贷款1月至今累放','贷款1月至今累收','存贷比']
data.fillna(0,inplace=True)
data['时间'] = month[19:27].replace(',','').replace(' ','-')
farmes = farmes.append(data,ignore_index=True)
farmes.to_csv(savefilename,encoding='utf-8')
return farmes
def getFenxian(filedir,savefilename):
farmes = pd.DataFrame(columns=['地区','存款月末余额','存款比年初增减额', '存款比年初增减%', '存款同比增减额','存款同比增减%', '存款占比%','贷款月末余额','贷款比年初增减额','贷款比年初增减%','贷款同比增减额', '贷款同比增减%', '贷款占比%','存贷比','同比增减额%','时间'])
filenames = glob.glob(filedir)
for filename in filenames:
df = pd.read_excel(filename, sheetname = u'分县', encoding='unicode')
month = str(df.loc[0].values[0:1])
data = df.ix[4:14,0:15]
data.columns = ['地区','存款月末余额','存款比年初增减额', '存款比年初增减%', '存款同比增减额','存款同比增减%', '存款占比%','贷款月末余额','贷款比年初增减额','贷款比年初增减%','贷款同比增减额', '贷款同比增减%', '贷款占比%','存贷比','同比增减额%']
data.fillna(0,inplace=True)
data['时间'] = month[19:27].replace(',','').replace(' ','-')
farmes = farmes.append(data,ignore_index=True)
farmes.to_csv(savefilename,encoding='utf-8')
return farmes
a = getJigou("data/*.xls",u'分机构数据.csv')
b = getFenxian("data/*.xls",u'分县数据.csv')
运行一下,就可以得到整理后的数据,以后有增加的数据,只要把新文件加到数据里,就可以用了。
▌数据分析
这里给大家介绍一款神器Power BI。
Power BI是微软官方推出的可视化数据探索和交互式报告工具。说人话,就是一款能把丑逼静态数据瞬间变成屌炸动态报表的神器。
image.png也就是说,现在我们可以把Excel中的数据一键导入到Power BI中。然后通过简单的图表配置,生成一份超高颜值的报表:
image.png大家可以先下载一个Power BI桌面版试玩,具体方法可以参考网上教程。
image▌数据分析及可视化
先把刚刚在python中生成的数据导入Power Bi
1.jpg先选择编辑查询,对数据进行查询整理,设置标题行。
在建模中,把“汇总方式”改为未汇总,便于下一步分析。
接下来,就可以选择不同类型的图表,把把不同字段的数据放到里边,就可以得到分析结果。
4.jpg 3.jpg 2.jpg 1.jpg 5.jpg 3.jpg 2.jpg 1.jpg通过可视化的分析,能分析出很多之前没有看出的东西。
本来要写几天的分析文章,半天就搞定了。
网友评论