修复显示11月23号之前的数据

This commit is contained in:
李伟 2021-12-24 10:00:54 +08:00
parent 713ed2d7e2
commit b461ec87f4

View File

@ -3,7 +3,7 @@ import mimetypes
from collections import defaultdict from collections import defaultdict
import time import time
from urllib.parse import quote from urllib.parse import quote
import re
import pandas as pd import pandas as pd
import numpy as np import numpy as np
from fastapi import APIRouter, Depends, Request from fastapi import APIRouter, Depends, Request
@ -75,7 +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号之前的数据
list_data_range=analysis.date_range
liststr_data_range=[]
for i in list_data_range:
liststr_data_range.append(str(i))
quota = analysis.event_view['quota']
#判断是设备LTV则执行下面代码如是角色实充LTV则不执行
if quota == '#distinct_id':
if '2021-11-22' in liststr_data_range or '2021-11-22' >=liststr_data_range[-1]:
#取搜索最后为11.23号之前的数据
if '2021-11-22' >=liststr_data_range[-1]:
news_sql=""""""
split_sql=sql.split('AND is_new_device = 1')
new_sql=split_sql[0]+split_sql[1]+split_sql[2]
news_sql+=new_sql
df_twenty_three=await ckdb.query_dataframe(news_sql)
#取包含有11.23号之前和23号之后的那一段
else:
start_date=str(list_data_range[0])
end_date='2021-11-22'
news_sql = """"""
split_sql = sql.split('AND is_new_device = 1')
for i in split_sql:
news_sql += i
#用正则表达式切时间
zhengze_time=r'\d{4}-\d{1,2}-\d{1,2}'
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_news_sql=""""""
zz_news_sql+=zz_new_sql
df_twenty_three = await ckdb.query_dataframe(zz_news_sql)
#上下合并两组数据,忽略以前的索引下标
df= pd.concat([df,df_twenty_three], axis=0, ignore_index=True)
df.sort_values('date', 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)