gpt4 book ai didi

python - Pandas:根据预定义类别的字符串列创建二进制列(虚拟/单热编码表)

转载 作者:行者123 更新时间:2023-12-05 08:36:28 25 4
gpt4 key购买 nike

这个问题一直困扰着我。我有一个服装项目的数据框,其相关描述如下:

Item Description
R2G1 RED, BLUE, SHIRT
G23A YELLOW SHIRT
P001 BLUE, PINK SKIRT

我还有一个项目列表,其中包含可能的服装项目类别,即。

categories = ['RED', 'BLUE', 'YELLOW', 'PINK', 'SHIRT', 'SKIRT']

我需要检查每个项目的描述字段以查看它们是否包含类别列表中的任何字符串,并根据类别在新列中为它们分配正确的二进制值。最终输出应如下所示:

Item Description      Red Blue Yellow Pink Shirt Skirt
R2G1 RED, BLUE, SHIRT 1 1 0 0 1 0
G23A YELLOW SHIRT 0 0 1 0 1 0
P001 BLUE, PINK SKIRT 0 1 0 1 0 1

我已尝试使用此功能,但我一直收到 AttributeError: 'float' object has no attribute 'upper' 错误,当我尝试按如下方式使用它时:

def get_category(series):
res = []
for i in category_list:
if i in series.upper():
res.append(i)
return res

df['Categories'] = df['Description'].apply(get_model)
df = df.join(df['Model'].str.join('|').str.get_dummies())

最佳答案

你可以尝试这样的事情:

import pandas as pd
import numpy as np

categories = ['RED', 'BLUE', 'YELLOW', 'PINK', 'SHIRT', 'SKIRT']

def categorize(df, categories):
for category in categories:
df[category] = np.where(df.Description.str.contains(category), 1, 0)
return df

df = categorize(df, categories)

输出:

<表类="s-表"><头>项目描述红色蓝色黄色粉色衬衫裙子<正文>R2G1红、蓝、衬衫110010G23A黄色衬衫001010P001蓝色、粉色裙子010101

关于python - Pandas:根据预定义类别的字符串列创建二进制列(虚拟/单热编码表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68874448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com