Python超市电商数据分析项目

目录

1.项目数据集

2.项目代码

3.总结


        Python超市电商数据分析项目涉及到数据的收集、清洗、处理、分析和可视化,以帮助超市电商了解业务状况、优化运营策略和提高销售效率。

本案例将对某大型超市的零售数据进行数据分析,通过了 解运营状况,做出合理的决策。详细字段是:
  • Row ID:行编号;
  • Order ID:订单ID
  • Order Date:订单日期;
  • Ship Date:发货日期;
  • Ship Mode:发货模式;
  • Customer ID:客户ID
  • Customer Name:客户姓名;
  • Segment:客户类别;
  • City:客户所在城市;
  • State:客户城市所在州;
  • Country:客户所在国家;
  • Postal Code:邮编;Market:商店所属区域;
  • Region:商店所属州;
  • Product ID:产品ID
  • Category:产品类别;
  • Sub-Category:产品子类别;
  • Product Name:产品名称;
  • Sales:销售额;
  • Quantity:销售量;
  • Discount:折扣;
  • Profit:利润;
  • Shipping Cost:发货成本;
  • Order Priority:订单优先级;

1.项目数据集

2.项目代码
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
plt.rcParams['font.sans-serif'] = ['SimHei']
warnings.filterwarnings('ignore')
#数据加载和整合
# 加载零售数据集,使用'ISO-8859-1'编码方式
df = pd.read_csv("C:/Users/DELL/Desktop/project3/market.csv",encoding='ISO-8859-1')
df.head()
#数据大小
df.shape
#数据分布情况
df.describe()

#将Order Date订单日期字段的数据修改为datetime类型
df["Order_Date"] = pd.to_datetime(df["Order_Date"])
df

#新增加年份列和月份列
df['year'] = df['Order_Date'].dt.year
df['month'] = df['Order_Date'].dt.month
df

# 创建一个字典来存储每年的客单价
year_unit_price = {}
for i in range(2011, 2015):
    data = df[df['year'] == i]
    price = data[['Order_Date', 'Customer_ID', 'Sales']]
    #删除重复数据
    price_dr = price.drop_duplicates(subset=['Order_Date', 'Customer_ID'])
    #得到pprice_dr的总行数
    total_num = price_dr.shape[0]   
    unit_price = price['Sales'].sum() / total_num
    year_unit_price[i] = unit_price
    print('{}年总消费次数='.format(i), total_num)
    print('{}年客单价='.format(i), unit_price, '\n')
#展示每年的客单价数据
# 使用matplotlib绘制柱状图展示每年的客单价
plt.figure(figsize=(10, 6))
plt.bar(year_unit_price.keys(), year_unit_price.values(), color='skyblue')
plt.xlabel('Year')
plt.ylabel('客单价')
plt.title('每年客单价分布')
plt.xticks(range(2011, 2015))
plt.show()

#计算每年的销售总额及增长率并绘图显示:
sales_sum=sales.sum()
# 计算每年增长率
rise_12=sales_sum[1]/sales_sum[0]-1
rise_13=sales_sum[2]/sales_sum[1]-1
rise_14=sales_sum[3]/sales_sum[2]-1
rise_rate=[0,rise_12,rise_13,rise_14]

fig, ax1 = plt.subplots()
ax1.bar(sales.columns[:], sales_sum.values[:], color='b', alpha=0.6, label='Sales')
ax1.set_xlabel('Year')  
ax1.set_ylabel('Sales', color='b')  
ax1.tick_params(axis='y', labelcolor='b')  
ax2 = ax1.twinx() 
ax2.tick_params(axis='y', labelcolor='r')  
ax2.plot(sales.columns[:], rise_rate[:], marker='o', linestyle='-', color='g') 
ax2.set_ylabel('Growth Rate (%)', color='r')
plt.show

#分别对各个区域每年销售额分析
Market_Year_Sales = df.groupby(['Market', 'year']).agg({'Sales':'sum'}).reset_index().rename(columns={'Sales':'Sales_amounts'})
Market_Year_Sales.head()
sns.barplot(x='Market', y='Sales_amounts', hue='year', data = Market_Year_Sales)
plt.title('各个区域每年销售额')
plt.show

#绘制饼状图
labels =['APAC', 'Africa', 'Canada', 'EMEA', 'EU', 'LATAM', 'US']
sizes=[0.28362615, 0.0619951 , 0.0052939 , 0.06376596, 0.23239776,
       0.17121652, 0.18170461]
colors = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet']  
explode = (0,0,0,0,0,0,0) 
plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', startangle=90)
plt.axis('equal')
plt.show

#发货时间与发货成本分析
df['Ship_Date'] = pd.to_datetime(df['Ship_Date'])
df['Year'] = df['Ship_Date'].dt.year
df['Month'] = df['Ship_Date'].dt.month
# 整理发货年、发货月的销售总额
sales_summary = df.groupby(['Year', 'Month'])['Sales'].sum().reset_index()
# 分析发货成本
shipping_cost_summary = df.groupby(['Year', 'Month'])['Shipping_Cost'].sum().reset_index()
shipping_cost_pivot = shipping_cost_summary.pivot(index='Month', columns='Year', values='Shipping_Cost')  
# 绘制折线图  
plt.figure(figsize=(10, 6))  
for year, data in shipping_cost_pivot.iteritems():  
    plt.plot(data.index, data.values, marker='o', label=f'Year {year}')  
plt.xlabel('Ship Month')  
plt.ylabel('Shipping Cost')  
plt.title('发货时间与发货成本的关系')  
plt.legend()  
plt.grid(True)  
plt.show()

3.总结

        这里列出了项目部分代码及结果。由上面的透视表和折线图可以看出,2011-2014年的发货成本 逐年上升,而且每年的各个月份的发货成本也呈上升趋势;但 是,2015年出现了新的情况!2015年只有7个月的统计数据, 但是这7个月的发货成本逐月降低,而且远远小于前4年的发货 成本,这很可能是由于2015年物流业的飞速发展使得发货成本 大大降低,所以,之后的进货成本也极有可能大大降低!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值