首先,我已经看了很多关于这个问题的线索,似乎没有一个在makecase中起作用。 Creating a new column based on if-elif-else condition似乎是最接近我想要做的。你知道吗
在我的df中,我有一列产品名称。我试图创建一个函数,在该列的每一行中查找部分字符串匹配项,并基于该匹配项为新df列中的每一行创建一个标签。我想使用一个函数,因为我需要匹配大约5到6个模式。你知道吗
我使用contains()函数查找部分产品标题匹配。这将返回一个bool,然后在函数中使用else/if进行检查:
def label_sub_cat():
if data['product'].str.contains('Proceedings', case=False) is True:
return 'Proceedings'
elif data['product'].str.contains('DVD', case=False) is True:
return 'DVD'
else:
return 'Other'
data['product_sub_cat'] = data.apply(label_sub_cat(), axis=1)
我不断得到以下错误:
AttributeError: 'DataFrame' object has no attribute 'other'
只要改变你的功能
中的函数数据框应用()应适用于数据框的每一行,而不是整个数据框。你知道吗
相关问题 更多 >
编程相关推荐