【发布时间】:2016-12-02 18:30:35
【问题描述】:
目前我有下一个数据框:
import pandas as pd
df= pd.DataFrame({"ID" : ['1','2','3','4','5'],
"col2" : [['a', 'b', 'c'],
['c', 'd', 'e', 'f'],
['f', 'b', 'f'],
['a', 'c', 'b'],
['b', 'a', 'b']]})
print(df)
ID col2
0 1 [a, b, c]
1 2 [c, d, e, f]
2 3 [f, b, f]
3 4 [a, c, b]
4 5 [b, a, d]
我想为 col2 创建一个带有假人的新数据框,如下所示:
ID a b c d e f
0 1 1 1 1 0 0 0
1 2 0 0 1 1 1 1
2 3 0 1 0 0 0 1
3 4 1 1 1 0 0 0
4 5 1 1 0 1 0 0
使用以下代码为列列表中的每个字母生成不同的列:
df2= df.col2.str.get_dummies(sep = ",")
pd.concat([data['col1'], df], axis=1)
ID a b b] c c] d d] e f] [a [b [c [f
1 0 1 0 0 1 0 0 0 0 1 0 0 0
2 0 0 0 0 0 1 0 1 1 0 0 1 0
3 0 1 0 0 0 0 0 0 1 0 0 0 1
4 0 0 1 1 0 0 0 0 0 1 0 0 0
5 1 0 0 0 0 0 1 0 0 0 1 0 0
使用下面的代码,根据它们所在的位置,为列列表中的每个字母生成不同的列。你们中有人知道为什么会经历这个吗? pd.get_dummies 选项也不起作用。
【问题讨论】:
标签: python python-2.7 pandas