拆分 pandas 列并创建计算拆分值的新列

Pau*_*oli 3 python pandas

我有一个愚蠢的数据,其中一列包含多个用逗号拼凑在一起的值:

In [62]: df = pd.DataFrame({'U': ['foo', 'bar', 'baz'], 'V': ['a,b,a,c,d', 'a,b,c', 'd,e']})                                     

In [63]: df                                                                                                                      
Out[63]: 
     U          V
0  foo  a,b,a,c,d
1  bar      a,b,c
2  baz        d,e

Run Code Online (Sandbox Code Playgroud)

现在我想拆分列V,删除它,然后a通过添加列e。列ae应该包含该字母在该行中出现的次数:

In [62]: df = pd.DataFrame({'U': ['foo', 'bar', 'baz'], 'V': ['a,b,a,c,d', 'a,b,c', 'd,e']})                                     

In [63]: df                                                                                                                      
Out[63]: 
     U  a  b  c  d  e
0  foo  2  1  1  1  0
1  bar  1  1  1  0  0
2  baz  0  0  0  1  1
Run Code Online (Sandbox Code Playgroud)

也许是df['V'].str.split(',')和的某种组合pandas.get_dummies,但我无法完全解决。

编辑:显然我必须证明为什么我的问题不重复。我认为对于最不经意的观察者来说,原因是显而易见的。

WeN*_*Ben 5

这是str.get_dummies

pd.concat([df,df.pop('V').str.split(',',expand=True).stack().str.get_dummies().sum(level=0)],1)
Out[602]: 
     U  a  b  c  d  e
0  foo  2  1  1  1  0
1  bar  1  1  1  0  0
2  baz  0  0  0  1  1
Run Code Online (Sandbox Code Playgroud)