【发布时间】:2019-01-15 12:09:37
【问题描述】:
我有一个看起来像这样的 Pandas 数据框:
text = ["abcd", "efgh", "ijkl", "mnop", "qrst", "uvwx", "yz"]
labels = ["label_1, label_2",
"label_1, label_3, label_2",
"label_2, label_4",
"label_1, label_2, label_5",
"label_2, label_3",
"label_3, label_5, label_1, label_2",
"label_1, label_3"]
df = pd.DataFrame(dict(text=text, labels=labels))
df
text labels
0 abcd label_1, label_2
1 efgh label_1, label_3, label_2
2 ijkl label_2, label_4
3 mnop label_1, label_2, label_5
4 qrst label_2, label_3
5 uvwx label_3, label_5, label_1, label_2
6 yz label_1, label_3
我想把数据框格式化成这样:
text label_1 label_2 label_3 label_4 label_5
abcd 1.0 1.0 0.0 0.0 0.0
efgh 1.0 1.0 1.0 0.0 0.0
ijkl 0.0 1.0 0.0 1.0 0.0
mnop 1.0 1.0 0.0 0.0 1.0
qrst 0.0 1.0 1.0 0.0 0.0
uvwx 1.0 1.0 1.0 0.0 1.0
yz 1.0 0.0 1.0 0.0 0.0
我怎样才能做到这一点?
(我知道我可以拆分标签中的字符串并将它们转换为列表,方法是执行df.labels.str.split(",") 之类的操作,但不确定如何从那里继续。
(所以基本上我想将标签列中的这些关键字转换为自己的列,并在它们出现在预期输出中时填写 1)
【问题讨论】:
-
标签列中的值是否有最大数量?
-
@MohitMotwani 不,它不是固定的,它可能会有所不同。
-
@MohitMotwani 我试过了,它没有产生所需的解决方案
标签: python string pandas dataframe text