import itertools
cols=['广告1', '广告2', '广告3', '广告4', '广告5', '广告6']
#按照两两组合生成列表
list(itertools.combinations(cols,2))
import itertools
import numpy as np
import pandas as pd
def TURF_tool(input_df,cols,max_cbts=10):
'''生成TURF分析结果,input_df为标准输入的dataframe,cols为需要进行组合的列名,需要为可迭代对象;max_cbts用于控制最大的组合数量'''
#先生成组合方式,此处生成所有组合,实际调用时通过max_cbts来控制
combinations=[]
for i in range(len(cols)):
combine=list(itertools.combinations(cols,i+1))
combinations.append(combine)
#统计以上结果,并进行汇总
#将对应数据选出,然后对所有列进行all处理,然后利用sum求和计算出符合条件的数量,如df.loc[:,list(combinations[1][0])].all(axis=1).sum()
# df.loc[:,list(combinations[1][0])]
combine_list=[]
for i in range(max_cbts):
print("正在计算第{}种组合\n".format(i+1))
temp=combinations[i]
temp_length= len(combinations[i])
for j in range(temp_length):
statis_dict={}
#提取组合方式,为可迭代对象
combine_cols=combinations[i][j]
# 按照组合形式,进行统计结果
#计算到达数
count_combine=input_df.loc[:,combine_cols].any(axis=1).sum()
#计算频数,即累计数量
acuum_combine=input_df.loc[:,combine_cols].sum().sum()
statis_dict['组合']=combine_cols
statis_dict['组合数']= i+1
statis_dict['到达数']=count_combine
statis_dict['频数']=acuum_combine
combine_list.append(statis_dict)
combine_result=pd.DataFrame(combine_list)
#得出总数
# combine_result['总数']=input_df.loc[:,cols].any(axis=1).sum()
combine_result['总数']=len(input_df)
#计算到达率
combine_result['到达率']=combine_result['到达数']/combine_result['总数']
#计算频率
combine_result['频率']=combine_result['频数']/combine_result['频数'].max()
#进行排序
combine_result=combine_result.sort_values('到达率',ascending=False)
return combine_result
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Turf.zip (2个子文件)
MaxDiffTURF-main.zip 7KB
Traditional_Turf.py 2KB
共 2 条
- 1
资源评论
DavidQing
- 粉丝: 4
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Picasso_v3.1 2.ipa
- chromedriver-mac-arm64.zip
- 蓝zapro.apk
- chromedriver-linux64.zip
- UCAS研一深度学习实验-MNIST手写数字识别python源码+详细注释(高分项目)
- 基于Python和PyTorch框架完成的一个手写数字识别实验源码(带MINIST手写数字数据集)+详细注释(高分项目)
- 基于Matlab在MNIST数据集上利用CNN完成手写体数字识别任务,并实现单层CNN反向传播算法+源代码+文档说明(高分项目)
- NVIDIA驱动、CUDA和Pytorch及其依赖
- 基于SVM多特征融合的微表情识别python源码+项目说明+详细注释(高分课程设计)
- html动态爱心代码一(附源码)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功