Python/SQL实现计算客户平均访问间隔天数的函数需求
计算客户平均购买兴趣时长(访问间隔天数平均值)
处理步骤:
- 转换日期列类型:先把字符串格式的访问日期转成
datetime类型,才能进行日期间隔计算。 - 按客户分组并排序日期:对每个客户的访问日期做排序,保证间隔计算是按时间顺序进行的。
- 计算相邻日期间隔并求平均:针对每个客户的日期序列,算出相邻日期的差值,转成天数后取平均值。
完整代码实现:
import pandas as pd def calculate_avg_interest_duration(dt): # 把字符串格式的访问日期转为datetime类型 dt['访问日期'] = pd.to_datetime(dt['访问日期']) # 按客户邮箱分组,排序日期后计算间隔天数,再求平均值 avg_interval = dt.groupby('email_proposta')['访问日期'].apply( lambda x: x.sort_values().diff().dt.days.dropna().mean() ).reset_index(name='平均购买兴趣时长(天)') return avg_interval
代码说明:
pd.to_datetime(dt['访问日期']):将字符串格式的日期转为可计算的datetime对象,这是日期运算的前提。groupby('email_proposta'):按客户邮箱分组,确保每个客户的访问数据独立处理。x.sort_values():对单个客户的访问日期排序,避免因原始数据乱序导致间隔计算出错。diff().dt.days:计算相邻日期的时间差并转为天数,diff()生成的第一个值是NaN(无前置日期),用dropna()剔除后再计算平均值。mean():对每个客户的有效间隔天数取平均,得到该客户的平均购买兴趣时长。
内容的提问来源于stack exchange,提问作者Vívian Andrade
相关产品推荐
相关产品推荐

