# count计数 df_tr_te['user_id_webpage_id_product'] = df_tr_te.groupby(['user_id','product','webpage_id'])['id'].transform('count') # 产品按用户, 天权重 df_tr_te['user_id_day_range'] = df_tr_te.groupby(['user_id','day'])['product'].transform(lambda x : len(x) / np.array(range(1,len(x)+1))) # 产品按用户权重 df_tr_te['user_id_range'] = df_tr_te.groupby(['user_id'])['product'].transform(lambda x : len(x) / np.array(range(1,len(x)+1))) # 网页按用户, 产品权重 df_tr_te['user_id_product_webpage_range'] = df_tr_te.groupby(['user_id','product'])['webpage_id'].transform(lambda x : len(x) / np.array(range(1,len(x)+1))) # 网页按用户, 活动权重 df_tr_te['user_id_campaign_id_webpage_range'] = df_tr_te.groupby(['user_id','campaign_id'])['webpage_id'].transform(lambda x : len(x) / np.array(range(1,len(x)+1)))
时间: 2023-06-27 12:05:24 浏览: 94
这是一些 Pandas 的代码,用于对 DataFrame 进行分组计数和计算权重。具体来说:
1. `df_tr_te.groupby(['user_id','product','webpage_id'])['id'].transform('count')` 会对 DataFrame `df_tr_te` 按照三个列(`user_id`、`product` 和 `webpage_id`)进行分组,然后对每个分组内的 `id` 列进行计数,最终返回一个 Series,其中包含了每个样本所在分组的计数值。
2. `df_tr_te.groupby(['user_id','day'])['product'].transform(lambda x : len(x) / np.array(range(1,len(x)+1)))` 会对 DataFrame `df_tr_te` 按照两个列(`user_id` 和 `day`)进行分组,然后对每个分组内的 `product` 列进行计数,并根据计数值计算权重。具体来说,对于每个分组,它会计算该分组内 `product` 列的长度,然后除以一个从 1 到分组长度的数组,得到一个权重序列,最终返回一个 Series,其中包含了每个样本所在分组的权重值。
3. `df_tr_te.groupby(['user_id'])['product'].transform(lambda x : len(x) / np.array(range(1,len(x)+1)))` 会对 DataFrame `df_tr_te` 按照一个列(`user_id`)进行分组,然后对每个分组内的 `product` 列进行计数,并根据计数值计算权重。具体来说,对于每个分组,它会计算该分组内 `product` 列的长度,然后除以一个从 1 到分组长度的数组,得到一个权重序列,最终返回一个 Series,其中包含了每个样本所在分组的权重值。
4. `df_tr_te.groupby(['user_id','product'])['webpage_id'].transform(lambda x : len(x) / np.array(range(1,len(x)+1)))` 会对 DataFrame `df_tr_te` 按照两个列(`user_id` 和 `product`)进行分组,然后对每个分组内的 `webpage_id` 列进行计数,并根据计数值计算权重。具体来说,对于每个分组,它会计算该分组内 `webpage_id` 列的长度,然后除以一个从 1 到分组长度的数组,得到一个权重序列,最终返回一个 Series,其中包含了每个样本所在分组的权重值。
5. `df_tr_te.groupby(['user_id','campaign_id'])['webpage_id'].transform(lambda x : len(x) / np.array(range(1,len(x)+1)))` 会对 DataFrame `df_tr_te` 按照两个列(`user_id` 和 `campaign_id`)进行分组,然后对每个分组内的 `webpage_id` 列进行计数,并根据计数值计算权重。具体来说,对于每个分组,它会计算该分组内 `webpage_id` 列的长度,然后除以一个从 1 到分组长度的数组,得到一个权重序列,最终返回一个 Series,其中包含了每个样本所在分组的权重值。
阅读全文