【发布时间】:2022-07-01 03:12:48
【问题描述】:
我有一个数据框df1 如下:
words_separated
0 [lorem, ipsum]
1 [dolor, sit, amet]
2 [lorem, ipsum, dolor, sit, lorem]
所以每一行都包含一个单词数组。我想得到类似这样的数据框df2:
lorem, ipsum, dolor, sit, amet
0 1, 1, 0, 0, 0
1 0, 0, 1, 1, 1
2 2, 1, 1, 1, 1
因此,df2 将为出现在 df1 中的每个唯一单词提供一列,以及与 df1 中的行对应的行,并记录单词在 df1 的相应行中出现的次数。这称为计数向量化。
我想过像这样使用MultiLabelBinarizer:
from sklearn.preprocessing import MultiLabelBinarizer
count_vec = MultiLabelBinarizer()
mlb = count_vec.fit(df["comment text"])
pd.DataFrame(mlb.transform(df["comment text"]), columns=[mlb.classes_])
lorem, ipsum, dolor, sit, amet
0 1, 1, 0, 0, 0
1 0, 0, 1, 1, 1
2 1, 1, 1, 1, 1
但是这只返回如果一个单词存在于行中,而不是这个单词出现了多少次,这是我需要的。
【问题讨论】: