1 相关背景
数据来源:该数据集来自The UCI Machine Learning Repository
数据背景:该数据集是英国某电商在2年内的全部在线销售数据,该电商主要销售独特的全时礼品,多数客户是批发零售商。该类产品的销售不需要太多的售前服务,消费也具有一定的频次。
分析目的:从海量购买数据中,挑选出优质客户?对客户进行细分并提出具有针对性的业务策略。
2 理解数据
1) 数据大小:1067371行数据,8个字段
2) 时间节点:2009年12月1日~2011年12月9日
3) 数据来源:点击下载
4) 字段说明:
字段名 | 说明 |
---|---|
InvoiceNo | 发票编号。每个交易分配唯一的6位整数。如果此代码以字母 “C” 开头,则表示已取消。 |
StockCode | 产品编号。每个不同产品分配唯一的5位整数。 |
Description | 产品名称、描述。 |
Quantity | 每笔交易中每个产品(项目)的数量。 |
InvoiceDate | 发票日期和时间。生成交易的日期和时间。 |
UnitPrice | 单价。单位产品的价格,货币单位为英镑。 |
CustomerID | 客户编号。每个客户分配唯一的5位整数。 |
Country | 国家名称。客户居住国家或地区的名称。 |
3数据清洗
3.1 导入数据
原数据集是以Excel表格的形式保存的,需要先另存为csv格式,再导入PostgreSQL数据库。
--创建表
CREATE TABLE online
(Invoice VARCHAR(8) NOT NULL,
StockCode VARCHAR(15),
Description VARCHAR(52),
Quantity NUMERIC,
InvoiceDate DATE,
Price NUMERIC,
Customer_ID VARCHAR(12),
Country VARCHAR(30));
将online.csv 导入表
COPY online ( Invoice, StockCode, Description, Quantity, InvoiceDate,
Price, Customer_ID, Country ) from 'D:\online.csv' WITH CSV HEADER;
查看表的前5行
SELECT * FROM online LIMIT 5;
3.2 去除重复数据
创建一个临时表,保存去除重复记录后的数据
CREATE TABLE new_table AS SELECT DISTINCT * FROM online;
原有数据1067371条,去重后数据1033034条,删除重复值34337条。
--删除旧的表
DROP TABLE online;
--将新的表重命名
ALTER TABLE new_table RENAME TO online;
3.3缺失值处理
查看缺失值的数量
SELECT SUM(CASE WHEN invoice IS NULL THEN