脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python pyecharts案例超市4年数据可视化分析

Python pyecharts案例超市4年数据可视化分析

2022-08-14 19:52lanxiaofang Python

这篇文章主要介绍了Python pyecharts案例超市4年数据可视化分析,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

一、数据描述

数据集中9994条数据,横跨1237天,销售额为2,297,200.8603美元,利润为286,397.0217美元,他们的库存中有1862件独特的物品,它们被分为3类,所有这些物品都在美国4个地区的49个州销售,来着793位客户的5009个订单。

数据集: Superstore.csv 来源:kaggle

一共21列数据,每一列属性描述如下:

  • Row ID => 每一行唯一的ID.
  • Order ID => 每个客户的唯一订单ID.
  • Order Date => 产品的订单日期.
  • Ship Date => 产品发货日期.
  • Ship Mode=> 客户指定的发货模式.
  • Customer ID => 标识每个客户的唯一ID.
  • Customer Name => 客户的名称.
  • Segment => The segment where the Customer belongs.
  • Country => 客户居住的国家.
  • City => 客户居住的城市.
  • State => 客户所在的州.
  • Postal Code => 每个客户的邮政编码.
  • Region => “客户”所属地区.
  • Product ID => 产品的唯一ID.
  • Category => 所订购产品的类别.
  • Sub-Category => 所订购产品的子类别.
  • Product Name => 产品名称
  • Sales =>产品的销售.
  • Quantity => 产品数量.
  • Discount => 提供折扣.
  • Profit => 已发生的利润/亏损.

 

1、数据概览

9994行,21列数据

print(df.info())
<class "pandas.core.frame.DataFrame">
RangeIndex: 9994 entries, 0 to 9993
Data columns (total 21 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Row ID 9994 non-null int64
1 Order ID 9994 non-null object
2 Order Date 9994 non-null object
3 Ship Date 9994 non-null object
4 Ship Mode 9994 non-null object
5 Customer ID 9994 non-null object
6 Customer Name 9994 non-null object
7 Segment 9994 non-null object
8 Country 9994 non-null object
9 City 9994 non-null object
10 State 9994 non-null object
11 Postal Code 9994 non-null int64
12 Region 9994 non-null object
13 Product ID 9994 non-null object
14 Category 9994 non-null object
15 Sub-Category 9994 non-null object
16 Product Name 9994 non-null object
17 Sales 9994 non-null float64
18 Quantity 9994 non-null int64
19 Discount 9994 non-null float64
20 Profit 9994 non-null float64
dtypes: float64(3), int64(3), object(15)
memory usage: 1.6+ MB
None

 

二、数据预处理

 

1、导入包和数据

import pandas as pd
from pyecharts.charts import *
from pyecharts import options as opts
from pyecharts.commons.utils import JsCode

data = pd.read_csv(r"./data/Superstore.csv")

 

2、列名重命名

重命名后的列名:

data.columns = ["行ID", "订单ID", "订单日期", "发货日期", "发货方式", "客户ID", "客户名称", "客户类型", "国家", "城市", "州", "邮政编码", "所属区域", "产品ID",
"产品类别", "产品子类别", "产品名称", "销售额", "产品数量", "提供折扣", "利润/亏损"]

 

3、提取数据中时间,方便后续分析绘图

data["年份"] = data["订单日期"].apply(lambda x: x[-4:])
data["日期"] = pd.to_datetime(data["订单日期"], format="%m/%d/%Y")
data["月份"] = data["日期"].dt.month
data["年-月"] = data["年份"].astype("str") + "-" + data["月份"].astype("str")

 

三、数据可视化

 

1、美国各个地区销售额的分布(地图)

包含:Order_Date Sales Quantity Profit year month

usa_sale = data[["州", "销售额"]].groupby("州").sum().round(2).reset_index()
print(usa_sale.head())
def echarts_map(province, data,  src="/uploads/allimg/220814/19533061B-0.gif" />

 

2、各产品类别销售额对比(柱状图)

pro_category = data[["产品类别", "销售额", "利润/亏损"]].groupby("产品类别").sum().round(2).reset_index()
pro_category.head()
def echarts_bar(x, y, y2,  src="/uploads/allimg/220814/19533045I-1.gif" />

 

3、不同客户类别销售额对比(饼图)

customer_sale = data[["客户类型", "销售额", "利润/亏损"]].groupby("客户类型").sum().round(2).reset_index()
def echarts_pie(x, y,  src="/uploads/allimg/220814/1953304020-2.gif" />

 

4、每月各产品销售额top10榜单

month_lis = data.sort_values(by="日期")["年-月"].unique().tolist()
month_sale = []
for i in month_lis:
month_data = data[data["年-月"] == i][["产品名称", "销售额"]].groupby(["产品名称"]). 
sum().round(2).reset_index().sort_values(by="销售额", ascending=False)[:10]
month_data = month_data.sort_values(by="销售额", ascending=True)
# final_data = [month_data["产品名称"].tolist(),month_data["销售额"].tolist()]
month_sale.append(month_data)
# month_sale[0]
# 绘制动态榜单
# 新建一个timeline对象
def echart_line(x, y,  src="/uploads/allimg/220814/1953303J5-3.gif" />

 

5、销售额、净利润在时间维度的变化(折线图)

sale_data = data.sort_values(by="日期")[["年份", "日期", "销售额", "利润/亏损"]]. 
groupby(["年份", "日期"]).sum().round(2).reset_index()
year_lis = sale_data["年份"].unique().tolist()
sale_data1 = sale_data[sale_data["年份"] == "2014"]
sale_data2 = sale_data[sale_data["年份"] == "2015"]
sale_data3 = sale_data[sale_data["年份"] == "2016"]
sale_data4 = sale_data[sale_data["年份"] == "2017"]
sale_data_lis = [sale_data1, sale_data2, sale_data3, sale_data4]
print(sale_data4.head())
def echarts_two_line(x, y,  src="/uploads/allimg/220814/195330A06-4.gif" />

 

6、销售额

sale_sum = int(data["销售额"].sum())
num_count = int(data["产品数量"].sum())
profit_sum = int(data["利润/亏损"].sum())
print(profit_sum)
def big_data(title="主标题", subtitle="副标题"):
c = Pie(
init_opts=opts.InitOpts(
chart_id=1,
bg_color="#080b30",
theme="dark",
width="300px",
height="300px",
)
)
c.set_global_opts(
title_opts=opts.TitleOpts(
title=title,
subtitle=subtitle,
title_textstyle_opts=opts.TextStyleOpts(
font_size=36,
color="#FFFFFF",
),
pos_left="center",
pos_top="middle"
)
)
return c.render(str(title) + "-" + subtitle + ".html")
big_data(title=sale_sum, subtitle="销售额")

Python pyecharts案例超市4年数据可视化分析

到此这篇关于Python pyecharts案例超市4年数据可视化分析的文章就介绍到这了,更多相关pyecharts数据可视化内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.51cto.com/u_15668438/5572526

延伸 · 阅读

精彩推荐