Day10实习日记

超市电商数据分析
本案例将对某大型超市的零售数据进行数据分析,通过了解运营状况,做出合理的决策。


先学一个之后能用到的东西:pandas.pivot_table可以创建一个透视表

pd.pivot_table(data, values=None, index=None, columns=None,aggfunc=‘mean’, fill_value=None, margins=False, dropna=True,margins_name=‘All’, observed=False) ->
‘DataFrame’ Docstring: Create a spreadsheet-style pivot table as a DataFrame.


读取、清洗数据:

  1. 使用pandas的read_csv读取数据后,查看各列数据的空值情况,
data = pd.read_csv('market.csv',encoding='ISO-8859-1')
data.describe()

在这里插入图片描述

发现Postal Code字段(邮编字段)有空值,而且这一列不重要,所以首先删除掉Postal Code列;

data.drop('Postal Code',axis=1,inplace=True) 
data.describe()
  1. 使用DataFrame对象的describe()方法,没有发现异常数据,所以,不必处理;
    在这里插入图片描述
  2. 将Order Date订单日期字段的数据修改为datetime类型;
    data['Order Date'] 查看一下数据
    在这里插入图片描述
    可以发现至少用了两种不同格式(日/月/年和日-月-年)表示日期

进行类型转换

temp = pd.to_datetime(data['Order Date'], 
format='%d/%m/%Y',errors='coerce').fillna(pd.to_datetime(data['Order Date'], 
format='%d-%m-%Y',errors='coerce'))
data['Order Date']  = temp.dt.date

pd.to_datetime可以将字符串转换为Timestamp格式
关于errors参数:

errors : {‘ignore’, ‘raise’, ‘coerce’}, default ‘raise’
- If ‘raise’, then invalid parsing will raise an exception.
- If ‘coerce’, then invalid parsing will be set as NaT.
- If ‘ignore’, then invalid parsing will return the input.

所以这里选择errors='coerce' 遇到无法被format='%d/%m/%Y'解析的格式时先将填为缺失值NAT(NOT A TIME),然后直接进行缺失值处理再进行一次format='%d-%m-%Y'的格式解析

2024/6/20修 format=%d/%m/%Y->format=%m/%d/%Y

Pandas.Series 对象和 DataFrame 的列数据提供了 cat、dt、str
三种属性接口(accessors),分别对应分类数据、日期时间数据和字符串数据

dt.date获取日期,用temp将时间戳格式数据存一下后面还能用上
进行类型转换完成后可以isnull().sum()查看一下缺失值,可以发现没有缺失值了,则完成类型转换
结果↓
在这里插入图片描述


  1. 为了后续分析方便,从订单日期中分别提取年、月、季度数据,并添加三个列用来存取年、月、季度信息,分别为:’Order-year’,’Order-month’,’quarter’。
    和3是一个意思
data['Order-year'] = temp.dt.year
data['Order-month'] = temp.dt.month
data['Order-quarter'] = temp.dt.quarter

在这里插入图片描述


思考题:还有哪些情况可以进行数据清洗?
答:不知道

  • 18
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值