df = pd.DataFrame(["c", "b", "a p", NaN, "ap"])
df[0].str.get_dummies(' ')
上面的代码打印出这样的东西。
a p b c ap
0 0 0 0 1 0
1 0 0 1 0 0
2 1 1 0 0 0
3 0 0 0 0 0
4 0 0 0 0 1
所需的输出如下:
a p b c
0 0 0 0 1
1 0 0 1 0
2 1 1 0 0
3 0 0 0 0
4 1 1 0 0
我确信这有点棘手。任何帮助表示赞赏。
答案 0 :(得分:1)
IIUC str.get_dummies
df[0].str.get_dummies(sep=' ')
Out[745]:
air bus car plane
0 0 0 1 0
1 0 1 0 0
2 1 0 0 1
或
pd.get_dummies(pd.DataFrame(df[0].str.split().tolist()).stack()).sum(level=0)
Out[754]:
air bus car plane
0 0 0 1 0
1 0 1 0 0
2 1 0 0 1
答案 1 :(得分:1)
您可以使用str.get_dummies
df[0].str.get_dummies(' ')
air bus car plane
0 0 0 1 0
1 0 1 0 0
2 1 0 0 1