Как маркировать уникальные значения? - PullRequest
1 голос
/ 08 октября 2019

У меня есть набор данных, который содержит 48000 строк в качестве входного текста и ответов. Есть 89 уникальных значений ответов. Как я могу сделать из текстовых ответов метку ответов, например, 1 уникальное значение равно answer1, второе - answer2 и так далее до ответа 89.


> x               y                y_val
> hello     please push button 1   answer1
> what's up please push button 1   answer1
> be cool   please push button 1   answer1
>smth       please push button 1   answer1
>write num  please push button 1   answer1 
>hello      please push button 1   answer1
>what's up  please push button 1   answer1
>be cool        sure               answer2
>smth       sure                   answer2
>write num  sure                   answer2
>hello      sure                   answer2
> what's up perfect                answer3
> be cool   perfect                answer3
>smth       call me                answer89
>write num  call me                answer89

========================================================================

Я хочу изменить, чтобы "пожалуйста, нажмите кнопку 1", чтобы было answer1, "обязательно", чтобы было answer2. У меня 89 уникальных значений, поэтому мне нужны всечтобы они изменили это, y_values ​​становятся столбцами, которые содержат только answer1-answer89.

1 Ответ

0 голосов
/ 08 октября 2019

Я немного запутался, вы хотите, чтобы к вашему фрейму данных был добавлен перекодированный столбец, в котором значения вашего столбца '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 способ сделать это, но это то, что я придумал.

Надеюсь, что это помогло!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...