电商交易数据分析

学习完Python,做个数据分析小案例练习一下

数据来自网上、可能并非真实案例、只是记录一下自己的学习过程哦!

# 加载数据分析需要使用的库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 加载数据,加载之前先用文本编辑器看下数据的格式,首行是什么,分隔符是什么
df = pd.read_csv('./order_info_2016.csv', index_col='id')
df.head()

# 加载好数据之后,第一步先分别使用describe和info方法看下数据的大概分布
df.describe()
df.info()

通过前面几条数据看下大致的分布

看下数据大致情况在这里插入图片描述在这里插入图片描述

# 加载device_type
device_type = pd.read_csv('./device_type.txt')
device_type

在这里插入图片描述
在这里插入图片描述

首先要做一个数据的清洗

# order_idz
# order_id在一个系统里是唯一值
# 先看下有没有重复值
# 注意:当对一列取size属性的时候,返回的是行数,如果对于dataframe使用size,返回的是行乘以 列的结果,也就是总的元素数
df.orderId.unique().size
df.orderId.size
# 如果有重复值,一般后处理,因为其他的列可能会影响到删除哪一条重复的记录
# 先处理其他的列

对order_Id 处理的结果为 104530 104557 有重复的记录

# userId
# userId我们只要从上面的describe和info看下值是不是在正常范围就行了
df.userId.unique().size  #结果为102672、对于订单数据,一个用户有可能有多个订单,重复值是合理的
# productId
# productId小值是0,先来看下值为0的记录数量
df.productId[(df.productId == 0)].size
# 177条记录,数量不多,可能是因为商品的上架下架引起的,处理完其他值的时候我们把这些删掉
# cityId
# cityId类似于userId,值都在正常范围,不需要处理
df.cityId.unique().size
# price
# price没有空值,且都大于0,注意单位是分,我们把它变成元
df.price = df.price / 100
# payMoney
# payMoney有负值,我们下单不可能是负值,所以这里对于负值的记录要删除掉
# 展示负值的记录
df[df.payMoney < 0]
# 删除负值的记录
df.drop(index=df[df.payMoney < 0].index, inplace=True)
# 在看下,已经没有了
df[df.payMoney < 0].index
# 变成元
df.payMoney = df.payMoney / 100
# channelId
# channelId根据info的结果,有些null的数据,可能是端的bug等原因,在下单的时候没有传 channelId字段
# 数据量大的时候,删掉少量的null记录不会影响统计结果,这里我们直接删除
# 展示
df[
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值