#python #dataframe #set #iteration
#python #фрейм данных #установить #итерация
Вопрос:
У меня есть фрейм данных, который выглядит следующим образом:
name
0 [somename1, somename2, n...
1 [name1, someothername, ...
2 [name, name, s...
3 [somename1, name3, s...
4 [name2, name2, s...
5 [somename2, name2, s...
6 [somename1, somename, s...
Я пытаюсь выполнить итерацию по фрейму данных и сохранить данные в фрейме данных в виде последовательности в наборе.
Поэтому я сделал это:
events = set([])
for index, row in datarame.iterrows():
session = row['name']
print len(session)
for x in session:
events.add(x)
print events length total:
print len(events)
Что я получаю в качестве вывода здесь:
24
80
15
60
76
66
83
32
100
73
13
3
2
9
57
2
2
4
1
events length total:
108
Что не имеет смысла. Обычно он должен добавлять все содержимое в сеансы, а длина должна быть суммой приведенных выше чисел, что, очевидно, не так.
Ответ №1:
A set
в python — это
неупорядоченный набор уникальных элементов.
Он не допускает дублирования.
Вместо этого вы должны определить event
как a list
.
events = []
for index, row in datarame.iterrows():
session = row['name']
print len(session)
for x in session:
events.append(x)
print events length total:
print len(events)