【夜曲编程-Python数据分析】电商交易数据清洗(考查的基础比较全面的一道数据清洗综合习题)

夜曲编程——电商交易数据清洗

题目

CC拿到了一份2018.01.01–2019.06.30平台销售订单数据。她需要对这份数据进行清洗。
这份数据在工作目录下,文件名是"180101-190630交易数据.csv"。路径为:“180101-190630交易数据.csv”。数据集简介如下:
各个字段的要求如下:
id,作为index
order_id,不存在<=0的异常值,不存在重复值
user_id,不存在<=0的异常值
payment,不存在<0的异常值,转化成单位元
price,不存在<0的异常值,转化成单位元
items_count,不存在<0的异常值
cutdown_price,不存在<0的异常值,转化成单位元
post_fee,不存在<0的异常值,转化成单位元
create_time,pay_time,转化成时间格式,不存在create_time>pay_time的异常值
数据集中,是否存在缺失值、异常值、重复值,需要自行进行判断。然后再进行处理。
最后,用df.info()输出清洗后的结果。

在这里插入图片描述

解题代码

import pandas as pd

df = pd.read_csv("180101-190630交易数据.csv")

#设置索引
df = df.set_index('id')

#处理order_id的异常值
dfWrongOrder = df[(df['order_id']<=0)]
df.drop(index=dfWrongOrder.index, inplace=True)
dfOrderDup = df[df['order_id'].duplicated()]
df.drop(index=dfOrderDup.index, inplace=True)

#处理user_id的异常值
dfWrongUser = df[df['user_id']<=0]
df.drop(index=dfWrongUser.index, inplace=True)

#处理payment的异常值
dfWrongPay = df[df['payment']<0]
df.drop(index=dfWrongPay.index, inplace=True)
df['payment'] = df['payment']/100

#处理price的异常值
dfWrongPrice = df[df['price']<0]
df.drop(index=dfWrongPrice.index, inplace=True)
df['price'] = df['price']/100

#处理items_count的异常值
dfWrongItems = df[df['items_count']<0]
df.drop(index=dfWrongItems.index, inplace=True)

#处理cutdown_price的异常值
dfWrongCP = df[df['cutdown_price']<0]
df.drop(index=dfWrongCP.index, inplace=True)
df['cutdown_price'] = df['cutdown_price']/100

#处理post_fee的异常值
dfWrongPost = df[df['post_fee']<0]
df.drop(index=dfWrongPost.index, inplace=True)
df['post_fee'] = df['post_fee']/100

#转换时间格式
df['create_time'] = pd.to_datetime(df['create_time'])
df['pay_time'] = pd.to_datetime(df['pay_time'])

#处理时间异常值
dfWrongTime = df[df['pay_time']<df['create_time']]
df.drop(index=dfWrongTime.index, inplace=True)

#输出DataFrame结果
df.info()
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值