用Python将统计数据不存在的记录按维度对应指标补齐
来源:互联网 发布:淘宝购物卖家没退运费 编辑:程序博客网 时间:2024/05/22 04:27
因为接到这个需求的时候,一开始想写Sql语句直接实现,发现比较麻烦;后来想通过Mysql存储过程来处理,但以前对Oracle存储过程熟悉,MySql存储过程代码不熟悉,要使用起来有一定的学习成本;最后选择用Python控制实现。谨此以记,供以后类似需要做参考。
需求描述:
一般的统计对格式如:”dim1,dim2,index1,index2,date“,如果维度对应的指标不存在,则结果表中就没有这个记录。现在要求,指标为空的记录给补上,且将其指标置为0。
实现代码:
/Users/nisj/PycharmProjects/EsDataProc/result_null_proc.py
需求描述:
一般的统计对格式如:”dim1,dim2,index1,index2,date“,如果维度对应的指标不存在,则结果表中就没有这个记录。现在要求,指标为空的记录给补上,且将其指标置为0。
实现代码:
/Users/nisj/PycharmProjects/EsDataProc/result_null_proc.py
# -*- coding=utf-8 -*-import osimport redef resultNullProc(): result_data = os.popen("""mysql -hMysqlHost -P6603 -uhadoop -pMysqlPass -N -e "use funnyai_data; \ select appkey,app_source,week_count \ from x_chushou_user_compare_week_stat \ where app_source <>'' \ group by appkey,app_source,week_count; \ " """ ).readlines(); nrpd_list = [] for nrp_list in result_data: nrp = re.split('\t', nrp_list.replace('\n', '')) nrpd_list.append(nrp) for nrpd in nrpd_list: appkey = nrpd[0] appsource = nrpd[1] week_count = nrpd[2] result_data1 = os.popen("""mysql -hMysqlHost -P6603 -uhadoop -pMysqlPass -N -e "use funnyai_data; \ select pm,appkey,app_source,week_count,compare_week_count from \ (SELECT (SELECT COUNT(1) + 1 \ FROM (select distinct remain_week from bi_user_remain_pay_byweek ) A \ WHERE concat(substr(A.remain_week,1,4),lpad(substr(A.remain_week,6),2,0)) < concat(substr(B.remain_week,1,4),lpad(substr(B.remain_week,6),2,0))) pm \ FROM (select distinct remain_week from bi_user_remain_pay_byweek ) B \ ORDER BY PM) a1 \ left join ( \ select appkey,app_source,week_count,compare_week_count \ from x_chushou_user_compare_week_stat \ where appkey='%s' and app_source='%s' and week_count='%s' \ ) a2 on a1.pm=a2.compare_week_count \ where a1.pm>'%s' and a2.appkey is null \ order by a1.pm;" """ % (appkey, appsource, week_count, week_count)).readlines(); nrpd_list = [] for nrp_list in result_data1: nrp = re.split('\t', nrp_list.replace('\n', '')) nrpd_list.append(nrp) for nrpd in nrpd_list: pm = nrpd[0] # print pm,appkey,appsource,week_count os.system("""mysql -hMysqlHost -P6603 -uhadoop -pMysqlPass -N -e "use funnyai_data; \ insert into x_chushou_user_compare_week_stat(appkey,app_source,week_count,compare_week_count,compare_identify_count,compare_register_user_count,compare_user_count,compare_pay_amount,compare_pay_user_count) \ select '%s','%s','%s','%s','%d','%d','%d','%d','%d'; \ " """ % (appkey, appsource, week_count, pm, 0, 0, 0, 0, 0))resultNullProc()
0 0
- 用Python将统计数据不存在的记录按维度对应指标补齐
- 用Python将统计数据不存在的记录按维度对应指标补齐(续:日数据情形)
- 关于SQL的统计数据补录
- 网站数据分析的维度和指标
- 网站数据分析的维度和指标
- 网站数据分析的维度和指标
- 指标与维度的那些事
- 维度和指标
- 事实表,维度,度量,指标之间的关系
- 关于数据分析的几点心得:维度、指标、KPI
- mysql 按月统计数据 没有数据按0补全
- 先判断记录是否存在,不存在则将记录插入表的sql语句
- 统计数据类型与对应的相关性分析方法
- python读写sqlite3数据库并将统计数据写入excel
- 用python 找到不存在的数字
- Python沙箱?不存在的
- 能找到满足条件的记录,则统统列出来。不存在满足条件的记录,则列出来一条“补null”的记录
- 【广告术语】维度和指标
- 简单认识TCP/IP协议
- 微信小程序之图片上传
- js统计页面访问次数
- .ftl文件简介及语法
- Android 控制ScrollView滚动到底部
- 用Python将统计数据不存在的记录按维度对应指标补齐
- Session
- mac上查看某个端口运行的程序
- UML实践详细经典教程
- hdu4348 To the moon
- ionic2拍照和文件上传
- H5的新特性及API详解(很惊人)
- JVM crash log
- Thinkphp下如何动态修改config