- 导入数据
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 步骤二(解决坐标轴负数的负号显示问题)
- 了解数据
user = pd.read_csv('E:/学习/fresh_comp_offline/tianchi_fresh_comp_train_user.csv')
user.info()
user.head()
# '''
# user_id用户标识,
# item_id 商品标识,
# behavior_type,用户对商品的行为类型 包括浏览、收藏、加购物车、购买,对应取值分别是1、2、3、4。
# user_geohash 用户位置的空间标识,可以为空 由经纬度通过保密的算法生成
# item_category 商品分类标识 字段脱敏
# time 行为时间 精确到小时级别
# '
# 查看统计信息
user.describe()
# 查看缺失值
user.isnull().sum()
3. 处理数据
user.duplicated().sum()
# 删除重复值
user.drop_duplicates(keep='last',inplace=True)
user.info() # 查看是否删除了重复值
# 将时间转换为datetime格式
user['time'] = pd.to_datetime(user['time'])
user.head()
# 提取出日期、月、年
user['dates'] = user.time.dt.date
user['month'] = user.dates.values.astype('datetime64[M]')
user['hours'] = user.time.dt.hour
user.head()
# 转换数据类型
user['behavior_type'] = user['behavior_type'].apply(str)
user['user_id'] = user['user_id'].apply(str)
user['item_id'] = user['item_id'].apply(str)
user.info()
4. 数据可视化
4.1 统计每日PV和UV数据
# 统计每日PV数据
pv_day = user[user.behavior_type=='1'].groupby('dates')[