【问题标题】:pandas advanced splitting by commapandas 高级逗号分割
【发布时间】:2018-05-21 01:12:13
【问题描述】:

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

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

例如数据框(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   
...

我知道我错过了一些东西。我是否需要先添加列,然后将拆分值映射到正确的列?如果你不知道所有的独特价值怎么办?仍在学习 pandas 语法,因此任何指向正确方向的指针都会受到赞赏。

【问题讨论】:

    标签: python-3.x pandas split


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2022-03-18
      • 1970-01-01
      • 1970-01-01
      • 2020-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多