import pandas as pd from otree.api import * doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'mysurvey' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): choice = models.IntegerField(choices=[1, 2, 3, 4, 5, 6], widget=widgets.RadioSelect) # PAGES class Market(Page): form_model = 'player' form_fields = ['choice'] @staticmethod def vars_for_template(player): data = pd.read_csv(f'./wines_participants/wines_participant_{player.participant.code}.csv', dtype=str, keep_default_na=False) df = pd.DataFrame(data, columns=['wine_id', 'name_correct', 'wine_type', 'varietal', 'country', 'year', 'price']) idx = (player.participant.id_in_session - 1) + 5 * (player.round_number - 1) df = df.loc[idx:idx + 4, :] names = [] varietals = [] styles = [] years = [] origins = [] prices = [] for k in list(range(idx,idx + 5)): names.append(df.loc[k, 'name_correct']) varietals.append(df.loc[k, 'varietal']) styles.append(df.loc[k, 'wine_type']) years.append(df.loc[k, 'year']) origins.append(df.loc[k, 'country']) prices.append(df.loc[k, 'price']) return dict( name1 = names[0], varietal1 = varietals[0], style1 = styles[0], year1 = years[0], origin1 = origins[0], price1 = prices[0], name2=names[1], varietal2=varietals[1], style2=styles[1], year2=years[1], origin2=origins[1], price2=prices[1], name3=names[2], varietal3=varietals[2], style3=styles[2], year3=years[2], origin3=origins[2], price3=prices[2], name4=names[3], varietal4=varietals[3], style4=styles[3], year4=years[3], origin4=origins[3], price4=prices[3], name5=names[4], varietal5=varietals[4], style5=styles[4], year5=years[4], origin5=origins[4], price5=prices[4], ) page_sequence = [Market]