2016-10-18 1 views
0

У меня есть dataframe, который выглядит следующим образом:панда dataframe итерация и добавление задать вопрос

   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... 

Я пытаюсь перебирать dataframe и сохранить данные в dataframe в виде последовательности в наборе. Поэтому я сделал это:

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

set в Python является

неупорядоченный набор уникальных элементов.

Это не позволяет дублировать.

Вместо этого вы должны определить event как 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)