итерация фрейма данных panda и добавление для задания проблемы

#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)