【问题标题】:Convert list to binary values using one-hot encoding使用 one-hot 编码将列表转换为二进制值
【发布时间】:2021-08-19 13:38:26
【问题描述】:

我在 CSV 文件中有一列。列中的每个单元格在列表中都有多个值。例如一个单元格将包含['A', 'B', 'C'] 和另一个['B', 'D']。我想将one-hot encoding 应用于此列以转换为二进制值以用于机器学习。

请告诉我该怎么做?

【问题讨论】:

    标签: python pandas machine-learning categorical-data one-hot-encoding


    【解决方案1】:

    输入是 csv 文件,所以没有列表,只有字符串。所以删除 [] 并使用 Series.str.get_dummies 以及删除列名中的尾随 '

    df = df['col'].str.strip('[]').str.get_dummies(', ')
    df.columns = df.columns.str.strip("'")
    

    如果需要一些处理将字符串转换为列表,请使用MultiLabelBinarizer 以提高性能:

    from sklearn.preprocessing import MultiLabelBinarizer
    
    mlb = MultiLabelBinarizer()
    df = pd.DataFrame(mlb.fit_transform(df['col']),columns=mlb.classes_)
    print (df)
    

    【讨论】:

    • @Don'tAccept - 谢谢。
    猜你喜欢
    • 1970-01-01
    • 2022-01-22
    • 2019-09-27
    • 1970-01-01
    • 2018-01-26
    • 1970-01-01
    • 2020-11-21
    • 2023-03-13
    相关资源
    最近更新 更多