因为接到这个需求的时候,一开始想写Sql语句直接实现,发现比较麻烦;后来想通过Mysql存储过程来处理,但以前对Oracle存储过程熟悉,MySql存储过程代码不熟悉,要使用起来有一定的学习成本;最后选择用Python控制实现。谨此以记,供以后类似需要做参考。

需求描述:

一般的统计对格式如:”dim1,dim2,index1,index2,date“,如果维度对应的指标不存在,则结果表中就没有这个记录。现在要求,指标为空的记录给补上,且将其指标置为0。

实现代码:

/Users/nisj/PycharmProjects/EsDataProc/result_null_proc.py

# -*- coding=utf-8 -*-

import os

import re

def 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()

python数据组织存在维度吗_用Python将统计数据不存在的记录按维度对应指标补齐...相关推荐

  1. python使用箱图法和业务规则进行异常数据处理并检查预测使用的数据特征是否有字段缺失的情况并补齐

    python使用箱图法和业务规则进行异常数据处理并检查预测使用的数据特征是否有字段缺失的情况并补齐 关于预测或者推理的时候特征补齐的情况是这样的: 你在模型训练的时候使用了多少特征,那么在模型预测和推 ...

  2. python做审计底稿视频_最新Python教学视频,每天自学俩小时,让你offer拿到手软...

    2020最新Python零基础到精通资料教材,干货分享,新基础Python教材,看这里,这里有你想要的所有资源哦,最强笔记,教你怎么入门提升!让你对自己更加有信心,重点是资料都是免费的,免费!!! 如 ...

  3. python文本结构化处理_在Python中标记非结构化文本数据

    python文本结构化处理 Labelled data has been a crucial demand for supervised machine learning leading to a n ...

  4. python交互式和文件式_使用Python创建和自动化交互式仪表盘

    python交互式和文件式 In this tutorial, I will be creating an automated, interactive dashboard of Texas COVI ...

  5. python 制作自己的新闻_用Python制作一个每日新闻热点爬虫脚本

    序言 文中的文本及图片来自互联网,仅作学习培训.沟通交流应用,不具备一切商业行为,如有什么问题请立即在线留言以作解决. 刚触碰Python的初学者.新手,能够拷贝下边的连接去收看Python的基本新手 ...

  6. python十大必备知识_学Python必备的基础知识

    学Python必备的基础知识 1.基本概念 表达式:就是一个类似于数学公式的东西,一般仅仅用了计算一些结果 ,不会对程序产生实质性的影响,如9+3; 语句:在程序中语句一般需要完成某种功能,比如打印信 ...

  7. python好用的软件_比python好用的分析软件_财务分析报表怎么做_企业财务报表分析软件-帆软...

    2020年刚刚接手公司管理工作的时候,我就有个想法:把财务部门变成公司的数据中心. 我发现,财务部门汇集了几乎公司内外所有的数据:每项业务活动只要涉及到money的进出,都会在财务账上留下记录.如果把 ...

  8. 用python做股市数据分析一_用python做股票数据分析(兴趣篇)

    本文我们一起用python来对某只股票的所有历史日数据,做一个探索性的分析,看看能不能有一些有趣的发现,希望能激起你对金融数据分析的兴趣.主要用到numpy,pandas模块的一些基本用法.本文的所有 ...

  9. 学python的有哪些好书_学习python有哪些好书和学习方法?

    不请自来~ 上干货 <Python数据分析>作者: [印尼]Ivan Idris Python是一种多范型编程语言,既适用于面向对象的应用开发,又适合函数式设计模式.Python已经成为数 ...

最新文章

  1. Yolov4性能分析(上)
  2. 1020 Tree Traversals
  3. python什么是调用_python open需要调用什么
  4. 计算最大回撤_量化扫盲:什么是最大回撤?
  5. <读书笔记> Thinking in python (Python 设计模式) 1. Singlton的c++与python的实现
  6. 21.Odoo产品分析 (三) – 人力资源板块(2) – 工时表(1)
  7. 单应矩阵,基本矩阵,本质矩阵
  8. yum如何卸载mysql_linux下 yum 安装mysql和卸载
  9. 阅读下面程序,请回答如下问题:
  10. 自动化通讯协定——现场总线
  11. python手机版-python手机版
  12. 验证码重新发送倒计时
  13. 【转】让你的手机成为你的电脑摄像头
  14. 骑士CMS人才招聘系统初次接触
  15. c语言调用win10麦克风,Win10系统麦克风如何开启?Win10系统开启麦克风的方法
  16. org.apache.solr.client.solrj.impl.CloudSolrServer$RouteException: Exception writing document id xxxx
  17. 各类文件的文件头标志[转]
  18. 第三章微分中值定理及导数应用(柯西中值和泰勒公式)
  19. Python中uniform的用法
  20. 大众汽车用html写出来代码,大众车系常用系统初始化方法及匹配编码

热门文章

  1. Android实现文件下载并自动安装apk包
  2. 【Win32汇编】测试Irvine32库
  3. 软件调试学习笔记(五)—— 软件断点内存断点
  4. 【Vue】ElementUI el-select 下拉分页加载数据,并支持搜索功能(此处不支持分页)
  5. 100. 增减序列【差分 / 思维】
  6. 5.1.6 假脱机技术
  7. Zookeeper的特点
  8. MySQL同时添加多条记录
  9. mongodb更新某个字段_直播 | MongoDB开源数据库的云上之路
  10. 【数据结构-树】2.二叉树遍历与线索二叉树(图解+代码)