python项目需求报告_Python数据分析-综合项目需求案例

#统计每个用户每个月的消费次数

df_purchase = df.pivot_table(index='user_id',values='order_dt',aggfunc='count',columns='month',fill_value=0) #columns='month' 对 values='order_dt'又做了一次划分

df_purchase.head()

2040744-20200718135344596-1329490289.png

#统计每个用户每个月是否消费,消费记录为1否则记录为0

df_purchase = df_purchase.applymap(lambda x:1 if x > 0 else 0)

df_purchase.head()

2040744-20200718135407401-1512861134.png

#将df_purchase中的原始数据0和1修改为new,unactive......,返回新的df叫做df_purchase_new

#固定算法 修改参数即可用

def active_status(data):

status = []#某个用户每一个月的活跃度

for i in range(18):

#若本月没有消费

if data[i] == 0:

if len(status) > 0:

if status[i-1] == 'unreg':

status.append('unreg')

else:

status.append('unactive')

else:

status.append('unreg')

#若本月消费

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:

status.append('active')

return status

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

pivoted_status.head()

user_id

1 [new, unactive, unactive, unactive, unactive, ...

2 [new, unactive, unactive, unactive, unactive, ...

3 [new, unactive, return, active, unactive, unac...

4 [new, unactive, unactive, unactive, unactive, ...

5 [new, active, unactive, return, active, active...

dtype: object

df_purchase_new = DataFrame(data=pivoted_status.tolist(),index=df_purchase.index,columns=df_purchase.columns)

df_purchase_new.head()

2040744-20200718135444181-1217410098.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值