【发布时间】:2015-09-28 19:48:20
【问题描述】:
我在 DataFrame 中有一个列(它是 csv 中的一个列),它们是逗号分隔的值。我想将此列拆分为多个列。
这个问题是个老问题,这里也讨论过,但有一个特点:一个条目可能来自0-n 逗号分隔值。一个例子:
df.head():
i: vals | sth_else
---------------------
1: a,b,c | ba
2: a,d | be
3: | bi
4: e,a,c | bo
5: e | bu
我想要以下输出(或类似的输出,例如 True/False):
i : a | b | c | d | e | sth_else
-----------------------------------
1: 1 | 1 | 1 | 0 | 0 | ba
2: 1 | 0 | 0 | 1 | 0 | be
3: 0 | 0 | 0 | 0 | 0 | bi
4: 1 | 0 | 1 | 0 | 1 | bo
5: 0 | 0 | 0 | 0 | 1 | bu
我目前正在试验Series.str.split,然后是Series.to_dict 函数,但没有任何令人满意的结果(导致总是ValueError: arrays must all be same length。:)
另外,我总是试图找到优雅的解决方案,几个月后查看这些解决方案很容易理解;)。无论如何,建议非常感谢!
这是用于测试的dummy.csv。
vals;sth_else
a,b,c;ba
a,d;be
;bi
e,a,c;bo
e;bu
【问题讨论】:
-
对于那些偶然发现以下答案的人,我认为这里的答案绝对优越:stackoverflow.com/questions/28121682/…
-
@AlexPetralia 确实如此!那是真正的熊猫方式 - 你为什么不把它也添加到这里的答案中?
标签: python pandas mapping dataframe series