重要说明:这不是Truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()的重复项。我已经检查过了,但是在这种情况下我找不到任何可以帮助我的东西。如果我错了,请告诉我。
因此,在这一点上,我正在使用这两列:名称和 BrandName 。有时,后者包含诸如 Unknown 的值。
我正在尝试创建一个新列,例如 NewColumn ,它看起来应该像这样:
df['New'] = df['Name'] + ' from' + df['BrandName']
但是,我不想将其应用于BrandName列中包含值“ Unknown”的行。
经过一番研究,我发现这可以解决问题:
df['New'] = np.where(df['BrandName'] == 'Unknown', df['Name'], df['Name'] + ' fra ' + df['BrandName'])
但我无法(如果我想呢)添加更多条件,以防它们出现。
对我来说,最吸引人的解决方案是使用if
和else
,但是我对python并不真正习惯。这是我试图写的,但不幸的是它返回了一个错误。
if df['BrandId'] != 2:
df['New'] = df['Name'] + ' fra ' + df['BrandName']
else:
df['New'] = df['Name']
ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。
if条件在做什么?是应该解决我的问题还是坚持使用np.where?再次,使用if和else对我非常有用,因为将来我计划添加更多条件,但是目前,我似乎在掌握正确用法方面惨遭失败。