JKD_wen 2022-07-28 03:05 采纳率: 33.3%
浏览 14
已结题

数据挖掘与分析训练中的疑问

目的:将用户群体打标为活跃、回流、未注册等

问题:
这样做可以打标成功:

img


图 数据集1

img


图 打标成功

而源于我在之前合并月份时的一个小错误(将两年的同一月合并在了一列里),导致我之前是用另一份数据集跑这个代码,但是会报错 keyError:0 (我修改了循环次数 range(12)

img


图 数据集2

img

img

疑问:请教各位为什么第二份dataframe会运行不出来呢?疑问了一上午= =

附上代码:

# 判断新老用户、回流用户、活跃用户
def active_status(data):
    status = [] # 存储18个月的状态:unreg/new/active/unactive/return
    for i in range(18):
        # 本月没有消费
        if data[i] == 0:
            if len(status) == 0: #971月份未消费:未注册 
                status.append('unreg')
            else: # 判断上月状态
                if status[i-1] == 'unreg':#一直未消费过
                    status.append('unreg')
                else:  # 无论上月是什么 本月未消费则不活跃
                    status.append('unactive')
        # 本月有消费
        else:
            if len(status) == 0:
                status.append('new')
            else:
                if status[i-1] == 'unactive':
                    status.append('return')
                elif status[i-1] == 'unreg':
                    status.append('new')
                else: #new/active/return
                    status.append('avtive')
    return pd.Series(status, df_purchase.columns) # 每次返回一整行

purchase_states = df_purchase.apply(active_status,axis=1)
purchase_states

展开全部

  • 写回答

0条回答 默认 最新

      编辑
      预览

      报告相同问题?

      问题事件

      • 系统已结题 8月4日
      • 创建了问题 7月28日
      手机看
      程序员都在用的中文IT技术交流社区

      程序员都在用的中文IT技术交流社区

      专业的中文 IT 技术社区,与千万技术人共成长

      专业的中文 IT 技术社区,与千万技术人共成长

      关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

      关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

      客服 返回
      顶部