Я немного запутался, вы хотите, чтобы к вашему фрейму данных был добавлен перекодированный столбец, в котором значения вашего столбца 'y' помечены как answer1-answer89?
Если да, этот код сделает это за вас:
seen = set()
y_val = []
x = list(range(1,50))
for i in range(len(data)):
if any((str(data.iloc[i,1]) == y) for y in seen):
y_val.append(y_val[-1])
else:
y_val.append('answer'+str(x[0]))
seen.add(str(data.iloc[i,1]))
x.pop(0)
data['y_values'] = y_val
print(data)
Этот способ предполагает, что данные упорядочены в алфавитном порядке по столбцу 'y' и что вы согласны с перекодировкой, следующей за этим порядком. Просто замените «data» именем вашего набора данных pandas и убедитесь, что iloc подходит для ваших столбцов. Я уверен, что есть более эффективный или pythonic способ сделать это, но это то, что я придумал.
Надеюсь, что это помогло!