我在用熊猫。这是我的df:
df = {'Product Name': ['Nike Zoom Pegasus', 'All New Nike Zoom Pegasus 4', 'Metcon 3', 'Nike Metcon 5']}
我想搜索每个字符串值,只提取产品类别,然后将提取的字符串值放入另一列(“类别”)。您可能会注意到,产品名称没有正式的命名约定,因此使用.split()并不理想
最终结果应如下所示:
df = {'Product Name': ['Nike Zoom Pegasus', 'All New Nike Zoom Pegasus 4', 'Metcon 3', 'Nike Metcon 5'], 'Category': ['Pegasus', 'Pegasus', 'Metcon', 'Metcon]}
我当前的代码是这样的,但我得到一个错误:
def get_category(product):
if df['Product Name'].str.contains('Pegasus') or df['Product Name'].str.contains('Metcon'):
return product
df['Category'] = df['Product Name'].apply(lambda x: get_category(x))
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
希望你能帮忙。谢谢
您的代码存在以下问题:
df["Product Name"]
,它返回整个系列李>Pegasus
或Metcon
我想你想要这样的东西
这个解决方案怎么样,当你有一个新的类别时,你所要做的就是将新的类别添加到cats数组中
那么:
相关问题 更多 >
编程相关推荐