Python 运维机器学习大数据

两小时搭建基于Power Bi的数据可视化分析平台

2017-12-03  本文已影响140人  安和然

手里有大量的统计数据,但都是零散的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

通过可视化的分析,能分析出很多之前没有看出的东西。

本来要写几天的分析文章,半天就搞定了。

上一篇 下一篇

猜你喜欢

热点阅读