有很多关于将单个列拆分为多个列的帖子,但我找不到对拆分概念略有修改的答案。
当你使用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
...
我知道我错过了什么。我是否需要先添加列,然后将拆分值映射到正确的列?如果您不了解所有独特的价值,该怎么办?仍然学习熊猫语法,所以任何指向正确方向的人都会受到赞赏。
答案 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