def inactive_customer_cohorts(startDate, endDate):
try:
print("startDate : ", startDate)
print("endDate : ", endDate)
df = data_util.get_customer_scans_df(startDate, endDate)
columns = ['userId', 'createdAt']
df = df[columns]
df['scanQuater'] = ('Q' + df['createdAt'].dt.quarter.astype(str) + '/' + df['createdAt'].dt.year.astype(str))
quartersMap = dict(zip(df['scanQuater'].unique(), range(len(df['scanQuater'].unique()))))
scanQuarterUsers = df.groupby('scanQuater')['userId'].apply(list).reset_index()
scanQuarterUsers['length'] = scanQuarterUsers['userId'].apply(len)
quarterUsers = {row['scanQuater']: row['userId'] for _, row in scanQuarterUsers.iterrows()}
quarters = list(quartersMap.keys())
cumulativePreviousUserIds = set()
previousQuarterUserMap = {}
data = []
for i in range(len(quarters)):
currentQuarter = quarters[i]
if currentQuarter in quarterUsers:
nonUniquecurrentUserIds = quarterUsers[currentQuarter]
currentUserIds = set(quarterUsers[currentQuarter])
currentCount = len(currentUserIds)
nonUniqueCurrentCount = len(nonUniquecurrentUserIds)
if cumulativePreviousUserIds:
uniqueCommonUserIds = set()
quarterCommonCounts = {}
for prevQuarter, prevUserIds in previousQuarterUserMap.items():
specificCommonUserIds = currentUserIds.intersection(prevUserIds)
for userId in specificCommonUserIds:
if userId not in uniqueCommonUserIds:
uniqueCommonUserIds.add(userId)
if prevQuarter in quarterCommonCounts:
quarterCommonCounts[prevQuarter] += 1
else:
quarterCommonCounts[prevQuarter] = 1
previousQuartersSummary = ", ".join([f"{count} from {quarter}" for quarter, count in quarterCommonCounts.items()])
totalSpecificCommonCount = len(uniqueCommonUserIds)
newUsers = currentCount - totalSpecificCommonCount
data.append({
"quarter": currentQuarter,
"scanCount": nonUniqueCurrentCount,
"uniqueCounts": currentCount,
"common": totalSpecificCommonCount,
"new": newUsers,
"common_breakdown": previousQuartersSummary
})
else:
data.append({
"quarter": currentQuarter,
"scanCount": nonUniqueCurrentCount,
"uniqueCounts": currentCount,
"common": 0,
"new": currentCount,
"common_breakdown": ""
})
cumulativePreviousUserIds.update(currentUserIds)
previousQuarterUserMap[currentQuarter] = currentUserIds
df = pd.DataFrame(data)
print(df)
return df
except Exception as e:
common_util.error_logs(e, 'inactive_customer_cohorts')
raise e
Это код, который я пытаюсь запустить. Всякий раз, когда я запускаю этот код в обычном режиме без каких-либо колб или почтальонов, я получаю правильный результат. Но всякий раз, когда я пытаюсь запустить его через почтальона, я получаю следующую ошибку:
data = [] for i in range(len(quarters)): currentQuarter = quarters[i] if currentQuarter in quarterUsers: nonUniquecurrentUserIds = quarterUsers[currentQuarter] currentUserIds = set(quarterUsers[currentQuarter]) currentCount = len(currentUserIds) nonUniqueCurrentCount = len(nonUniquecurrentUserIds)
if cumulativePreviousUserIds: uniqueCommonUserIds = set() quarterCommonCounts = {} for prevQuarter, prevUserIds in previousQuarterUserMap.items(): specificCommonUserIds = currentUserIds.intersection(prevUserIds) for userId in specificCommonUserIds: if userId not in uniqueCommonUserIds: uniqueCommonUserIds.add(userId) if prevQuarter in quarterCommonCounts: quarterCommonCounts[prevQuarter] += 1 else: quarterCommonCounts[prevQuarter] = 1
previousQuartersSummary = ", ".join([f"{count} from {quarter}" for quarter, count in quarterCommonCounts.items()]) totalSpecificCommonCount = len(uniqueCommonUserIds) newUsers = currentCount - totalSpecificCommonCount
cumulativePreviousUserIds.update(currentUserIds) previousQuarterUserMap[currentQuarter] = currentUserIds df = pd.DataFrame(data) print(df) return df except Exception as e: common_util.error_logs(e, 'inactive_customer_cohorts') raise e
[/code] Это код, который я пытаюсь запустить. Всякий раз, когда я запускаю этот код в обычном режиме без каких-либо колб или почтальонов, я получаю правильный результат. Но всякий раз, когда я пытаюсь запустить его через почтальона, я получаю следующую ошибку: [code] { "status": 500, "message": "maximum recursion depth exceeded", "data": {} } [/code] Пожалуйста, сообщите мне, что мне делать, чтобы избежать появления этой ошибки. Дайте мне знать, если потребуется дополнительная информация.
Я пишу итеративное решение для поиска максимальной глубины двоичного дерева, используя первый поиск в ширине (bfs) :
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
Я работаю над реализацией «вида дна» бинарного дерева. Общее определение состоит в том, чтобы выбрать самый низкий (самый глубокий) узел для каждого горизонтального расстояния (HD).
Я столкнулся с сценарием, в котором несколько узлов имеют...
When I used the auto py to exe module to package Python files into the exe file format, I encountered an error and the program did not contain recursive statements. Why does an error occur: RecursionError: maximum recurrence depth exceeded while...
Мне нужна помощь, почему я получаю ошибку типа RecursionError, я использую python-socket
Кстати, прежде чем двигаться дальше, я хочу чтобы было ясно, что эта проблема не связана с конфигурацией сокета, она работает нормально, простые тестовые...