撤销判断11.23之前数据的逻辑

This commit is contained in:
李伟 2022-01-06 10:00:19 +08:00
parent effad3ca10
commit af7091adcc

View File

@ -16,7 +16,7 @@ from common import *
from api import deps from api import deps
from db import get_database from db import get_database
from db.ckdb import get_ck_db, CKDrive from db.ckdb import get_ck_db, CKDrive, ckdb
from db.redisdb import get_redis_pool, RedisDrive from db.redisdb import get_redis_pool, RedisDrive
from models.behavior_analysis import BehaviorAnalysis from models.behavior_analysis import BehaviorAnalysis
@ -75,42 +75,42 @@ async def ltv_model_sql(
split_="""AND 1 """ split_="""AND 1 """
news_sql = split_sql[0] + split_+new_sql + split_sql[1] + split_+new_sql+ split_sql[2]+split_+split_sql[3] news_sql = split_sql[0] + split_+new_sql + split_sql[1] + split_+new_sql+ split_sql[2]+split_+split_sql[3]
df = await ckdb.query_dataframe(news_sql) df = await ckdb.query_dataframe(news_sql)
# 判断11月23号之前的数据 # # 判断11月23号之前的数据
list_data_range=analysis.date_range # list_data_range=analysis.date_range
liststr_data_range=[] # liststr_data_range=[]
for i in list_data_range: # for i in list_data_range:
liststr_data_range.append(str(i)) # liststr_data_range.append(str(i))
quota = analysis.event_view['quota'] # quota = analysis.event_view['quota']
#判断是设备LTV则执行下面代码如是角色实充LTV则不执行 # #判断是设备LTV则执行下面代码如是角色实充LTV则不执行
if quota == '#distinct_id': # if quota == '#distinct_id':
if '2021-11-22' in liststr_data_range or '2021-11-22' >=liststr_data_range[-1]: # if '2021-11-22' in liststr_data_range or '2021-11-22' >=liststr_data_range[-1]:
#取搜索最后为11.23号之前的数据 # #取搜索最后为11.23号之前的数据
if '2021-11-22' >=liststr_data_range[-1]: # if '2021-11-22' >=liststr_data_range[-1]:
news_sql="""""" # news_sql=""""""
split_sql=sql.split('AND is_new_device = 1') # split_sql=sql.split('AND is_new_device = 1')
new_sql=split_sql[0]+split_sql[1]+split_sql[2] # new_sql=split_sql[0]+split_sql[1]+split_sql[2]
news_sql+=new_sql # news_sql+=new_sql
df_twenty_three=await ckdb.query_dataframe(news_sql) # df_twenty_three=await ckdb.query_dataframe(news_sql)
#取包含有11.23号之前和23号之后的那一段 # #取包含有11.23号之前和23号之后的那一段
else: # else:
start_date=str(list_data_range[0]) # start_date=str(list_data_range[0])
end_date='2021-11-22' # end_date='2021-11-22'
news_sql = """""" # news_sql = """"""
split_sql = sql.split('AND is_new_device = 1') # split_sql = sql.split('AND is_new_device = 1')
for i in split_sql: # for i in split_sql:
news_sql += i # news_sql += i
#用正则表达式切时间 # #用正则表达式切时间
zhengze_time=r'\d{4}-\d{1,2}-\d{1,2}' # zhengze_time=r'\d{4}-\d{1,2}-\d{1,2}'
zhengze_sql=re.split(zhengze_time,news_sql) # zhengze_sql=re.split(zhengze_time,news_sql)
zz_new_sql=zhengze_sql[0]+start_date+zhengze_sql[1]+end_date+zhengze_sql[2]+start_date+zhengze_sql[3]+end_date+zhengze_sql[4] # zz_new_sql=zhengze_sql[0]+start_date+zhengze_sql[1]+end_date+zhengze_sql[2]+start_date+zhengze_sql[3]+end_date+zhengze_sql[4]
zz_news_sql="""""" # zz_news_sql=""""""
zz_news_sql+=zz_new_sql # zz_news_sql+=zz_new_sql
df_twenty_three = await ckdb.query_dataframe(zz_news_sql) # df_twenty_three = await ckdb.query_dataframe(zz_news_sql)
#上下合并两组数据,忽略以前的索引下标 # #上下合并两组数据,忽略以前的索引下标
df= pd.concat([df,df_twenty_three], axis=0, ignore_index=True) # df= pd.concat([df,df_twenty_three], axis=0, ignore_index=True)
df.sort_values('date', inplace=True) # df.sort_values('date', inplace=True)
#去重 # #去重
#df.drop_duplicates(inplace=True) # #df.drop_duplicates(inplace=True)
quota = res['quota'] #字段名 quota = res['quota'] #字段名
ltv_n = res['ltv_n'] ltv_n = res['ltv_n']
#df = await ckdb.query_dataframe(sql) #df = await ckdb.query_dataframe(sql)