我有一個DataFrame中的列(這是一個csv中的列),這是一個逗號分隔值。我想將此列分成多列。pandas:將DataFrame列(一個系列)中的分隔值拆分爲多個列。優雅的解決方案
問題是一個老的問題,並且這裏也討論過了,但是有一個特點:一個條目可能是從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
想我下面的輸出(或類似的,如真/假):
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
對於那些誰將會在下面的答案跌倒,我想這裏的答案是嚴格優越的:http://stackoverflow.com/questions/28121682/quickest-way-to-make-a-get-dummies-type-dataframe-from-a-column-with-a-multiple –
@ AlexPetralia確實如此!這是真正的熊貓的方式 - 你爲什麼不把它也添加到這裏的答案? – dmeu