本文涉及数据下载链接。
二、数据预处理 2.1 读取数据 import pandas as pddf = pd.read_csv('your_path/Year 2010-2011.csv', encoding='ISO-8859-1')df.head() 2.2 检查数据 检查空值情况 df.isna().sum() # 结果Invoice 0StockCode 0Description 1454Quantity 0InvoiceDate 0Price 0Customer ID 135080Country 0dtype: int64 检查重复情况 df.duplicated().sum()# 结果5268 检查数值分布 df.describe() 2.3 小结:进行数据预处理 df = df.drop_duplicates()df = df.dropna()df = df.query('Quantity>0 & Price>0') 三、可视化 3.1 把时间调整成月份 df['date_new'] = df['InvoiceDate'].copy()df['date_new'] = pd.to_datetime(df.date_new, format='%m/%d/%Y %H:%M')df['yyyymm'] = df.date_new.dt.to_period('M') 3.2 获取所需字段 df['start_month'] = df.groupby('Customer ID')['yyyymm'].transform(min)df['lasted_months'] = (df.yyyymm- df.start_month).apply(lambda x: x.n)print(df.head()) 3.3 做成客户留存表 pt = df.pivot_table(index='start_month', columns='lasted_months', values='Customer ID', aggfunc='nunique')pt_cohort = pt.divide(pt.iloc[:,0], axis=0)print(pt_cohort.head(2)) 3.4 做成热力图 import seaborn as snsimport matplotlib.pyplot as pltimport matplotlib.colors as mcolorswith sns.axes_style('white'):plt.rcParams['font.family'] = 'simhei'fig, axes = plt.subplots(1, 2, figsize=(12, 8), sharey=True, gridspec_kw={'width_ratios': [1, 11]})sns.heatmap(pt_cohort, annot=True, fmt='.0%', ax=axes[1])axes[1].set_title('月度Cohorts: 客户留存', fontsize=16)axes[1].set(xlabel='# of periods', ylabel='')sns.heatmap(pd.DataFrame(pt.iloc[:,0]),annot=True, fmt='g',cbar=False,cmap=mcolors.ListedColormap('white'),ax=axes[0])fig.tight_layout()【python笔记】客户运营 - cohort分析,格力一夜完成河北市场系统切换
0evadmin
编程语言
2
文件名:【python笔记】客户运营 - cohort分析,格力一夜完成河北市场系统切换
【python笔记】客户运营 - cohort分析
一、数据
同类推荐
-

【Python 2】列表 模式匹配 循环 dict set 可变对象与不可变对象,平板电脑团购
查看 -

【Python CheckiO 题解】House Password,索尼cs19
查看 -

【Python Fastapi】js上传文件,fastapi处理,js显示回传信息,诺基亚6600s
查看 -

【Python 必会技巧】使用 zip() 函数对序列进行压缩和解压操作,铁血敢死队
查看 -

【Python_PySide2学习笔记(十八)】勾选按钮QCheckBox类的基本用法,漫步者m12
查看 -

【Python】AppUI自动化—appium自动化元素定位、元素事件操作(17)下,dv6-6029tx
查看 -

【Python】Error:'int' object is not callable,aerial7耳机
查看 -

【Python】IDE环境Pycharm运行虚拟环境Django,天语w606(pycharm使用虚拟环境)
查看 -

【Python】Python 连接字符串应优先使用 join 而不是 +,多普达p660
查看