前言
最近在分析超期库存数据, 每天4万条左右, 数据的特点是有很多分类变量, 为了展现这些变量的关系, 想到了桑吉图。
Pyechart官网上有关于桑基图的案例, 但是如何用日常使用的excel数据整理成作图的数据, 却没有说明, 今天我们介绍下制作桑吉图的4个步骤。
本案例以泰坦尼克号乘客数据为例, 效果图如下:
1 读取数据
数据为excel表格, 前几列都为分类变量, 最后一列是需要计数或者求和的变量,在桑基图上显示为流量大小。
from pyecharts import options as opts
from pyecharts.charts import Sankey
import pandas as pd
import numpy as np
import json
data1 = pd.read_excel('./泰坦尼克数据.xlsx')
data1
2 整理成3列数据
数据转换成 父类→子类→值 这种格式;
从父类到子类, 每相邻的两个分类变量都需要计算. 使用pandas中数据透视表(pivot_table)方法, 计算后的数据纵向合并
# 名称列表
lis = data1.columns.tolist()[:-1]
# 两个子list
lis1 = lis[:-1]
lis2