数据分析学习日志(二)

255 阅读1分钟

基于上文数据进行简单数据统计及图形展示。

上文地址:https://juejin.cn/post/6925418763437211655

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

"""
00 图形显示汉字及负号展示设置语句
"""
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False

"""
01 读取上一篇存储后的数据
"""
data = pd.read_csv(filepath_or_buffer='data.csv', sep=',', encoding='utf-8')
data.info()

"""
02 统计用户数、条目数、品类数、操作类型数
"""
users = data['user_id'].unique().size
items = data['item_id'].unique().size
categories = data['category_id'].unique().size
behaviors = data['behavior_type'].unique().size
print(f'用户总数:{users};\n条目总数:{items};\n品类总数:{categories};\n操作类型:{behaviors}')

"""
0301 统计操作类型对应的次数方法一
"""
pvs1 = data.groupby(by='behavior_type')['user_id'].count()['pv']
carts1 = data.groupby(by='behavior_type')['user_id'].count()['cart']
buys1 = data.groupby(by='behavior_type')['user_id'].count()['buy']
print(f'方法一:\n浏览总数:{pvs1};\n加购物车总数:{carts1};\n购买总数:{buys1};\n')

"""
0302 统计操作类型对应的次数方法二
"""
pvs2 = data[data['behavior_type'] == 'pv']['user_id'].size
carts2 = data[data['behavior_type'] == 'cart']['user_id'].size
buys2 = data[data['behavior_type'] == 'buy']['user_id'].size
print(f'方法二:\n浏览总数:{pvs2};\n加购物车总数:{carts2};\n购买总数:{buys2};\n')

"""
0401 统计对应操作参与用户人数方法一
"""
pv_users1 = data.drop_duplicates(subset=['user_id', 'behavior_type']).groupby(by='behavior_type')['user_id'].count()['pv']
cart_users1 = data.drop_duplicates(subset=['user_id', 'behavior_type']).groupby(by='behavior_type')['user_id'].count()['cart']
buy_users1 = data.drop_duplicates(subset=['user_id', 'behavior_type']).groupby(by='behavior_type')['user_id'].count()['buy']
print(f'方法一:\n浏览总数:{pv_users1};\n加购物车总数:{cart_users1};\n购买总数:{buy_users1};\n')

"""
0402 统计对应操作参与用户人数方法二
"""
pv_users2 = data[data['behavior_type'] == 'pv']['user_id'].unique().size
cart_users2 = data[data['behavior_type'] == 'cart']['user_id'].unique().size
buy_users2 = data[data['behavior_type'] == 'buy']['user_id'].unique().size
print(f'方法二:\n浏览总数:{pv_users1};\n加购物车总数:{cart_users1};\n购买总数:{buy_users1};\n')

"""
05  通过图形展示用户在24内在网站的活动情况
"""
users_hour = data.groupby(by='op_hour')['user_id'].count()
plt.title(label="每小时用户活动数量")
plt.bar(x=users_hour.index, height=users_hour.values, width=0.5)
plt.xticks(np.arange(24))
plt.show()

展示24小时用户活动图形