Pandas: переформатирование данных
У меня есть серия pandas, которая теперь выглядит так:
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]
И я хочу радикально изменить его в dataframe, который выглядит примерно так...
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
т. логическая конструкция, в которой указывается, к какому категориям относится каждое наблюдение (строка).
Я могу писать для кода на основе цикла, чтобы решить проблему, но учитывая большое количество строк, которые мне нужно обрабатывать, это будет очень медленным.
Кто-нибудь знает, какое векторное решение для такого рода проблем? Я был бы очень благодарен.
EDIT: есть 509 категорий, у меня есть список.
Ответы
Ответ 1
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