# 分析思路
1. 读取数据
2. 数据处理
3. 数据分析及可视化
4. 数据分析报告
# 一.读取数据
| EN | CN |
|--|--|
| id | 编号 |
| orderID | 订单编号 |
| userID | 用户编号 |
| goodsID | 商品编号 |
| orderAmount | 订单金额 |
| payment | 支付金额 |
| chanelID | 渠道编号 |
| platformType | 平台类型 |
| orderTime | 下单时间 |
| payTime | 支付时间 |
| chargeback | 退单拒付 |
## 1.1 加载数据文件
```
import pandas as pd //加载处理数据所需要的库
df = pd.read_excel('order2020.xlsx',index_col='id') //读取数据文件
#pd.set_option('display.width',None) //设置数据展示宽度
#print(df.tail(10)) //展示导入数据的后10行,以便检查
```
- pd.set_option('display.width',None) //设置数据展示宽度,解决列展示出现省略号问题
- print(df.head()) //默认读取前5行记录
- print(df.tail(10)) //读取后10行的数据,无参默认为5行

## 1.2 提取数据
### 1.2.1根据业务需要提取数据,提取2020年数据
```
# 1.引入时间模块, 确定周期时间
import datetime
# 2.确定开始时间节点与结束时间节点
startTime = datetime.datetime(2020, 1, 1) #开始时间
endTime = datetime.datetime(2020, 12, 31, 23, 59, 59) #结束时间
# 3.将2020年1月1日前数据删除
df[df.orderTime < startTime]
#删除数据 drop(index="索引", inplace=True,False)
df.drop(index=df[df.orderTime < startTime].index, inplace=True)
# 4.将2020年12月31日后数据删除
df[df.orderTime > endTime]
df.drop(index=df[df.orderTime > endTime].index, inplace=True)
```

### 1.2.2提取数据时,处理与业务流程不符合数据、支付时间间隔过长数据
```
# 1.下单时间与支付时间间隔
df['payinterval'] = (df.payTime-df.orderTime).dt.total_seconds()
# 2.支付时间间隔大于30分钟与支付时间早于下单时间
df[df.payinterval>1800]
df.drop(index=df[df.payinterval>1800].index, inplace=True)
df.drop(index=df[df.payinterval<0].index, inplace=True)
```

### 1.2.3提取数据时,处理与业务流程不符合数据,订单金额与支付金额为负
```
# 1.订单金额为负
df[df.orderAmount < 0]
# 2.付款金额为负
df[df.payment < 0]
# 3.删除相应订单
df.drop(index=df[df.orderAmount < 0].index, inplace=True) #删除负订单金额
df.drop(index=df[df.payment < 0].index, inplace=True) #删除负付款金额
```

# 二.数据处理
## 查看数据
```
#1.查看非空信息
df.info()
#2. 查看整体描述
df.describe()
```

## 2.1 数据清洗
### 脏数据类型
1. 重复值
2. 异常值
3. 缺失值
### 脏数据处理方式

### 2.1.1 清洗orderID
```
#1.订单orderID不重复的个数
df.orderID.unique().size
#2.删除重复数据
df.drop(index=df[df.orderID.duplicated()].index, inplace=True)
df.info()
```

### 2.1.2 清洗goodsID
```
#PR000000 商品下架
df.goodsID[df.goodsID == 'PR000000'].size
df.drop(index=df[df.goodsID == 'PR000000'].index, inplace=True)
df.info()
```

### 2.1.3 清洗chanelID
```
#1.查看chanelID空值
df[df.chanelID.isnull()]
#2.对空值进行修补
df['chanelID'].fillna(value=df.chanelID.mode()[0], inplace=True)
df.info()
```

### 2.1.4 清洗platformtype
```
print(df.platformType.unique()) #列出所有不重复平台
df['platformType']=df['platformType'].str.replace(" ","") #空字符串代替空格
print(df.platformType.unique()) #列出所有不重复平台,再次检查
```

### 2.1.5 清洗payment
```
# 1.创建折扣字段
df['discount'] = (df.payment/df.orderAmount)
df.describe()
# 2.平均折扣
meanDiscount = df[df['discount']<=1].discount.sum() / df[df['discount']<=1].discount.size
meanDiscount
# 3.找到折扣大于1的数据
df[df['discount']>1]
df['payment'] = df['payment'].mask(df['discount']>1,None)
# 4.对折扣大于1的数据进行填补
df['payment'].fillna(value=df.orderAmount*meanDiscount , inplace=True)
df.info()
# 5.处理折扣
df['discount'] = round((df.payment/df.orderAmount),2)
pd.set_option('display.width',None)
print(df)
```

### 2.2 数据规整
```
df['month'] = df['orderTime'].dt.month #提取月份
df['weekday'] = df['orderTime'].dt.dayofweek+1 #周几
df['orderDate'] = df['orderTime'].dt.date
#print(df)
```

### 数据处理完毕 查看数据
`print(df.describe())`
```
输出结果:
orderAmount payment payinterval discount month weekday
count 103146.000000 103146.000000 103146.000000 103146.000000 103146.000000 103146.000000
mean 1050.466247 993.373100 59.438204 0.917957 7.157835 3.885211
std 1054.020910 1042.470804 127.309944 0.138318 3.299359 1.937466
min 6.100000 0.000000 0.000000 0.000000 1.000000 1.000000
25% 432.495000 379.310000 15.000000 0.900000 5.000000 2.000000
50% 680.620000 627.890000 23.000000 0.960000 7.000000 4.000000
75% 1249.685000 1193.792500 46.000000 1.000000 10.000000 5.000000
max 28465.250000 28465.250000 1788.000000 1.000000 12.000000 7.000000
Process finished with exit code 0
```
# 三.分析数据及可视化
## 3.1 分析数据,整体运营情况
```
#总体概览
# 1.销售GMV
df.orderAmount.sum()/10000 #10835
# 2.成交总和
df.payment.sum()/10000 #10246
# 3.实际成交额
df[df.chargeback=="否"].payment.sum()/10000 # 8879
# 4.订单数量
df.orderID.unique().size #103146
# 5.退货订单数
df[df.chargeback=="是"].orderID.size #13590
# 6.退货率
df[df.chargeback=="是"].orderID.size/df.orderID.unique().size
# 7.用户数
df.userID.unique().size #78525
```
## 3.2销售情况,各月份GMV\成交额趋势
```
#1.绘制图形
#1.1引入相应的库
from PythonDataAnalyse import df #调用PythonDataAnalyse.py的df函数
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['font.serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#1.2设置字体
my_font =FontProperties(fname='C:/Windows/Fonts/Deng.ttf',size=12,)
#1.3设置画布大小
plt.figure(figsize=(10,6))
#1.4设置网格线 辅助线
plt.grid(alpha=0.4)
#2.横纵坐标值
#2.1所有横坐标都一致
x = df.groupby('month')['orderAmount'].sum().index
#2.2GMV
y1 = df.groupby('month')['orderAmount'].sum().values/10000
#2.3销售实际付款
y2 = df.groupby('month')['payment'].sum().values/10000
#2.4不含退单销售额
y3 = df[df.chargeback=="否"].groupby('month')['payment'].sum().values/10000
#2.5 X横轴坐标文字
x_ticks_label = ["{}月份".format(i) for i in x]
#2.6 x轴刻�
没有合适的资源?快使用搜索试试~ 我知道了~
基于Python实现的电商平台数据分析系统源码+项目使用说明
共30个文件
png:19个
py:7个
pyc:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 50 浏览量
2024-10-26
15:41:02
上传
评论 2
收藏 1.68MB ZIP 举报
温馨提示
基于Python实现的电商平台数据分析系统源码+项目使用说明,含有代码注释,满分大作业资源,新手也可看懂,期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为课程设计期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 基于Python实现的电商平台数据分析系统源码+项目使用说明基于Python实现的电商平台数据分析系统源码+项目使用说明基于Python实现的电商平台数据分析系统源码+项目使用说明基于Python实现的电商平台数据分析系统源码+项目使用说明基于Python实现的电商平台数据分析系统源码+项目使用说明基于Python实现的电商平台数据分析系统源码+项目使用说明基于Python实现的电商平台数据分析系统源码+项目使用说明基于Python实现的电商平台数据分析系统源码+项目使用说明基于Python实现的电商平台数据分析系统源码+项目使用说明基于Python实现的电商平台数据分析系统源码+项目使用说明基于Python实现的电商平台数据分析系统源码+项目使用说明基于Python实现的电商平台数据分析系统源码+
资源推荐
资源详情
资源评论
收起资源包目录
基于Python实现的电商平台数据分析系统源码+文档说明.zip (30个子文件)
python--main-
SalesTrend.py 2KB
RepurchaseRate.py 1KB
UserBehavior2.py 1KB
picture
009.png 66KB
011.png 134KB
006.png 109KB
003.png 185KB
001.png 132KB
t2.png 94KB
010.png 133KB
008.png 101KB
RFM.png 68KB
t4.png 29KB
004.png 182KB
t3.png 20KB
脏数据处理方式.png 41KB
005.png 145KB
t5.png 42KB
007.png 100KB
t1.png 81KB
t6.png 25KB
002.png 192KB
PythonDataAnalyse.py 3KB
ChanelSource.py 618B
RFM.py 2KB
UserBehavior.py 1006B
__pycache__
SalesTrend.cpython-37.pyc 1KB
PythonDataAnalyse.cpython-37.pyc 2KB
UserBehavior2.cpython-37.pyc 1KB
README.md 22KB共 30 条
- 1
资源评论
yava_free
- 粉丝: 7672
上传资源 快速赚钱
我的内容管理
展开
我的资源
快来上传第一个资源
我的收益 登录查看自己的收益
我的积分
登录查看自己的积分
我的C币
登录后查看C币余额
我的收藏
我的下载
下载帮助
前往需求广场,查看用户热搜最新资源
- jeap-process-archive-avro-maven-plugin-8.7.1-sources.jar
- objectos-collections-list-3.0.0.jar
- schemas-jvm-1.0.67-sources.jar
- servicediscovery-jvm-1.5.2.jar
- pcaconnectorscep-jvm-1.4.45.jar
- qrinvoice-itext5-1.6.jar
- datalake-commons_2.12-7.1.4.jar
- proton-jvm-0.32.2-beta-sources.jar
- biz.aQute.bnd.embedded-repo-6.2.0.jar
- sns-jvm-1.1.19.jar
- mturk-jvm-0.19.3-beta-sources.jar
- sagemakerruntime-1.4.98-javadoc.jar
- kinesisvideoarchivedmedia-1.2.4-javadoc.jar
- launchwizard-jvm-1.3.55-javadoc.jar
- easyconfiguration-core-4.0.10.jar
- jeap-spring-boot-security-starter-it-webflux-17.23.0.jar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功