Чтобы перефразировать это, я генерирую некоторые фиктивные данные. Предполагая список клиентов (некоторые с несколькими транзакциями), я хочу отметить каждого уникального клиента. Затем я создам соответствующую личную информацию, такую как пол, идентификатор клиента и т. Д.
Мои шаги были:
1) Создать список всех уникальных имен
2) перебрать столбец «Имена» в моем Dataframe
3) когда значение в списке уникальных имен и в «именах» DataFrame совпадает, добавьте 1 к списку (затем удалите имя из списка уникальных имен, создавая 0 для каждого последующего экземпляра имени). Или оставьте 0, если он не совпадает.
Я пробовал несколько методов, но ни один из них не работает, этот показался мне наиболее близким, но я не смог найти ответ.
Первый фрейм данных
customers = [ ('jack', 34),
('tom', 30),
('jack', 31),
('jack', 32),
('jon', 16),
('tim', 17) ]
Создать объект DataFrame
df = pd.DataFrame(customers, columns = ['Name' , 'Age'])
1) создать список уникальных имен
uniques = df.Name.unique().tolist()
uniques
2)
worklist = []
for i in df:
if df["Name"] == uniques[i]:
worklist.append(i)
uniques.remove(i)
else:
worklist.append(0)
print(worklist)
print(uniques)
В конце у меня должен быть список фиктивных переменных (1,0 с)
[1,1,0,0,1,1]
Аналогично, список уникальных имен должен быть пустым.
Однако я постоянно получаю эту ошибку.
TypeError: list indices must be integers or slices, not str