我想使用MultiLabelBinarizer()准备包含适用于文本的标签的列。 例如,根据title预测电影可能属于哪种流派。

当值预先定义为DataFrame中的列表时,MultiLabelBinarizer()的效果很好:

import pandas as pd
from sklearn.preprocessing import MultiLabelBinarizer

df = pd.DataFrame({"Text": ["Blah blah", "Blah blah blah"],
              "Tag": [["Hi", "Hello"], ["Hey"]]})

mlb = MultiLabelBinarizer()
print(mlb.fit_transform(df["Tag"]))
print(mlb.classes_)

array([[1, 0, 1],
       [0, 1, 0]])

array(['Hello', 'Hey', 'Hi'], dtype=object)

但是,当我将CSV或Excel文件读入Pandas时,此方法失败。 例如,如果我制作具有相同结构的简单CSV:

CSV范例

并将其读入熊猫+使用MultiLabelBinarizer():

df = pd.read_csv(filepath)

mlb = MultiLabelBinarizer()
print(mlb.fit_transform(df["Tag"]))
print(mlb.classes_)

它将每个字符视为一个单独的类,并且不再输出为array():

[[1 1 1 1 1 1 1 1 0]
 [0 1 0 1 1 0 0 0 1]]

[' ' '"' ',' 'H' 'e' 'i' 'l' 'o' 'y']

鉴于此限制,我如何从CSV或Excel文件中读取并保留MultiLabelBinarizer()的功能?

#1楼 票数:0 已采纳

添加.str.split(“,”)

mlb.fit_transform(df["Tag"].str.split(","))

  ask by Matt translate from so

未解决问题?本站智能推荐:

1回复

转换熊猫数据框以用于MultiLabelBinarizer

我的问题是:如何转换这样的数据框以最终在scikit的MulitLabelBinarizer中使用它: 它应该像这样调谐: 因此,我可以在MultiLabelBinarizer中正确使用数据: 注意:原始数据有超过一百万行。
1回复

如何执行具有特定维数的 MultiLabelBinarizer?

我想知道是否有办法在具有特定维度的 sklearn 中执行 MultiLabelBinarizer。 例如我们有如下代码: 我的问题是我们如何获得此数组的特定维度数,例如维度 6,因此答案应提供: 有没有办法在 sklearn 或 python 中的其他方法或模块中做到这一点,可以轻松处理这
1回复

熊猫的read_csv方法使用了过多的RAM

我目前在使用pandas DataFrame()处理数据时在Kaggle上使用Rotten Tomatoes数据集 。 我已经从sklearn实现了CountVectorizer()来提取特征(大小为5000)。 然后,我将10万行特征和标签保存到.csv中 。 更准确地说, .csv
1回复

使用熊猫在.csv中编辑整行并将其馈送到KNeighborsClassifier

我是应用机器学习的新手,这里有一个数据集,其中包含一列巧克力中可可的百分比。 但是,当我将该列提供给KNeighborsClassifer的fit()函数时,它将引发以下错误; 我的代码是这个; 很明显,fit()函数在可可列中需要一个浮点数,但是它正在获取'%'符号以及未经操
3回复

解析非常大的CSV数据集

我有一个非常大的CSV数据集(900M个记录),包含以下格式: 示例数据: 对于这种格式,我希望获得每个URL的所有唯一活动。 我试图做的是创建一个字典,其中的键是URL,值是一组唯一的活动。 但是,这在性能方面非常糟糕–它吞噬了所有RAM,并且在时间方面非常慢(O(n)
1回复

如何从csv文件输入进行单热编码

我有一个csv文件,我读了 有些列是数字的,有些是字符串。 让我们调用其中一个数字列'num'和一个字符串'col' 。 我想做以下事情: 我希望能够对一个名为'col'的字符串列进行热编码,并生成一个包含所有特性的稀疏矩阵。 我想对df['num']进行单热编码,
3回复

使用Pandas为Scikit-Learn准备CSV文件数据?

我有一个没有标题的csv文件,我正在使用pandas导入到python中。 最后一列是目标类,而其余列是图像的像素值。 如何使用pandas(80/20)将此数据集拆分为训练集和测试集? 此外,一旦完成,我将如何分割每个集合,以便我可以定义x(除最后一列之外的所有列)和y(最后一列)?
1回复

熊猫:将DataFrame转换为每个单元的均值和标准差

我有一个非常规的DataFrame(从csv中读取)。 看起来像这样: 对于每个单元格,我首先需要将字符串转换为浮点数列表(熊猫有没有办法将其读取为浮点数列表而不是字符串?),然后我想创建一个新的DataFrame,由均值和标准差: 这可能吗? 我最终将它读入scikit-l