熊猫:重塑数据

发布于 2021-01-29 18:29:08

我有一个熊猫系列,目前看起来像这样:

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]

我想从根本上将其重塑成一个看起来像这样的数据框…

      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

即。逻辑构造,指出每个观察(行)属于哪个类别。

我能够编写基于循环的代码来解决该问题,但是鉴于我需要处理的行数众多,这将非常缓慢。

有谁知道针对这种问题的矢量化解决方案?我将不胜感激。

编辑:有509个类别,我确实有一个清单。

关注者
0
被浏览
46
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。
    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
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看