一、分析思路
通过对淘宝用户行为数据进行分析,展现业务现状和解决一些业务问题。分析思路如下:
二、数据背景
三、数据清洗
① 导入数据
此处仅用python导入2000000条数据进行分析,源数据没有列名,加上列名。
import pandas as pd
import matplotlib.pyplot as plt
import datetime
data = pd.read_csv('project/UserBehavior.csv', header=None, nrows=2000000,
names=['user_id', 'item_id', 'category_id', 'behavior_type', 'time'])
print(data.head())
② 缺失数据处理
print(data.isnull().sum())
没有缺失值,无须删除空值数据。
③ 对time列时戳值转换类型,并拆分time列成date和hour
data['time'] = pd.to_datetime(data['time'], unit='s') + datetime.timedelta(hours=8)
print(data.head())
data['date'] = data['time'].map(lambda x: x.strftime('%Y-%m-%d %H').split(' ')[0])
data['hour'] = data['time'].map(lambda x: x.strftime('%Y-%m-%d %H').split(' ')[1])
pd.set_option('display.max_columns', 10)
print(data.head())
④ 将数据按date、hour列排序,重置索引;删除超出时间范围的异常数据
data = data.sort_values(by=['date', 'hour'], ascending=True)
data = data.reset_index(drop=True)
print(data.head(10))
df_bool = (data.loc[:, 'date'] > '2017-11-24') & (data.loc[:, 'date'] < '2017-12-04')
data = data.loc[df_bool, :].reset_index(drop=True)
print(data.head(10))
四、数据分析
(1)流失和转化分析
① pv点击量到购买量的转化
用户行为统计数量:
pv_convert_data = data['behavior_type'].value_counts()
print(pv_convert_data)
pv的转