Pandy: zmiana danych

Mam serię pand, która obecnie wygląda tak:

14    [Yellow, Pizza, Restaurants]
...
160920                  [Automotive, Auto Parts & Supplies]
160921       [Lighting Fixtures & Equipment, Home Services]
160922                 [Food, Pizza, Candy Stores]
160923           [Hair Removal, Nail Salons, Beauty & Spas]
160924           [Hair Removal, Nail Salons, Beauty & Spas]
I chcę radykalnie przekształcić go w ramkę danych, która wygląda mniej więcej tak...
      Yellow  Automotive  Pizza
14       1         0        1
…           
160920   0         1        0
160921   0         0        0
160922   0         0        1
160923   0         0        0
160924   0         0        0

Ie. konstrukcja logiczna, w której kategorii mieści się każda obserwacja (wiersz).

Jestem w stanie napisać kod oparty na pętli, aby rozwiązać ten problem, ale biorąc pod uwagę dużą liczbę wierszy, które muszę obsłużyć, będzie to bardzo powolne.

Czy ktoś zna wektorowe rozwiązanie tego typu problem? Byłbym bardzo wdzięczny.

EDIT: jest 509 kategorii, których mam listę.

Author: N. McA., 2013-05-19

1 answers

In [9]: s = Series([list('ABC'),list('DEF'),list('ABEF')])

In [10]: s
Out[10]: 
0       [A, B, C]
1       [D, E, F]
2    [A, B, E, F]
dtype: object

In [11]: s.apply(lambda x: Series(1,index=x)).fillna(0)
Out[11]: 
   A  B  C  D  E  F
0  1  1  1  0  0  0
1  0  0  0  1  1  1
2  1  1  0  0  1  1
 28
Author: Jeff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-19 17:47:42