Возврат нескольких значений одновременно из функции в Python
помогите пожалуйста с моим небольшим вопросом. У меня не получается вывести из функции Python два значения. Либо могу вывести поочередно одно из двух, либо получается вывести просто в виде какого то кода. В результате хотелось бы получить чтобы выводилась таблица и под ней следом график. Я в принципе прописал уже return в конце кода, но не знаю как заставить их работать одновременно. Заранее благодарю.
def calculate_rolling_ret(installs, logins):
import pandas as pd
import numpy as np
installs = installs.drop_duplicates().dropna()
logins = logins.drop_duplicates().dropna()
logins = logins[(logins['is_tester'] ==0) & (logins['is_youtuber'] ==0)][['client_id','event_timestamp']]
work_table = logins.merge(
installs,
on='client_id',
how='inner')
work_table
work_table['event_timestamp'] = pd.to_datetime(work_table['event_timestamp'], format='%Y-%m-%d')
work_table['install_date'] = pd.to_datetime(work_table['install_date'], format='%Y-%m-%d')
work_table['week_start'] = work_table['install_date'].dt.to_period('W').dt.start_time
work_table['lifetime'] = work_table['event_timestamp'] - work_table['install_date']
work_table['lifetime'] = work_table['lifetime'] / np.timedelta64(1, 'D')
work_table['lifetime'] = work_table['lifetime'].astype('int')
work_table['event_timestamp'] = work_table['event_timestamp'].dt.date
work_table
min_lifetime = work_table['lifetime'].min()
max_lifetime = work_table['lifetime'].max()
count_id={}
for lifetime in range(0, max_lifetime+1):
result = work_table[work_table['lifetime'] >= lifetime]['client_id'].nunique()
count_id[lifetime] = result
rol_ret_table = pd.DataFrame.from_dict((count_id), orient='index').reset_index()
rol_ret_table.columns = ['lifetime', 'count_user']
rol_ret_table['rol_ret'] = round(rol_ret_table['count_user']/rol_ret_table['count_user'][0], 2)
rol_ret_table = rol_ret_table.rename(columns={'count_user': 'players'})
import plotly.express as px
ret_fig=px.line(
rol_ret_table,
x='lifetime',
y='rol_ret',
title='Rolling retention',
labels={'lifetime':'День жизни','rol_ret':'Rolling retention'}
)
ret_fig.update_yaxes(dict(tickformat=".0%"))
return rol_ret_table
#return ret_fig
Ответы (1 шт):
Автор решения: GrDEV
→ Ссылка
А если значения загнать в массив и вывести массив данных. А потом выдирать данные из массива.