pandas通过逗号进行高级拆分

时间:2018-05-21 01:12:13

标签: python-3.x pandas split

有很多关于将单个列拆分为多个列的帖子,但我找不到对拆分概念略有修改的答案。

当你使用str.split时,它会独立于顺序拆分字符串。您可以将其修改为稍微复杂一些,例如按字母顺序排序

e.x。 dataframe(df)

     row
0    a, e, c, b
1    b, d, a
2    a, b, c, d, e
3    d, f

foo = df['row'].str.split(',')

将根据逗号分割并返回:

     0     1    2    3
0    a     e    c    b
....

但是,这并未使结果与其唯一值对齐。即使您对拆分字符串使用排序,它仍然只会导致:

     0    1    2    3    4    5
0    a    b    c    e
1    a    b    d
...

虽然我希望它看起来像这样:

     0    1    2    3    4    5
0    a    b    c         e
1    a    b         d
2    a    b    c    d    e   
...

我知道我错过了什么。我是否需要先添加列,然后将拆分值映射到正确的列?如果您不了解所有独特的价值,该怎么办?仍然学习熊猫语法,所以任何指向正确方向的人都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

使用get_dummies

s=df.row.str.get_dummies(sep=' ,')
s.mul(s.columns)
Out[239]: 
   a  b  c  d  e  f
0  a  b  c     e   
1  a  b     d      
2  a  b  c  d  e   
3           d     f