修复显示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
import time
from urllib.parse import quote
import re
import pandas as pd
import numpy as np
from fastapi import APIRouter, Depends, Request
@ -75,7 +75,42 @@ async def ltv_model_sql(
split_="""AND 1 """
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)
# 判断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'] #字段名
ltv_n = res['ltv_n']
#df = await ckdb.query_dataframe(sql)