在pandas数据框中,如何有条件地将列的值填充到属于列表一部分的其他列中的值?
这与this SO question非常相似,但是当我申请时:
df['type'] = np.where(df['food'] in ['apple', 'banana', 'kiwi'], 'fruit', 'oth. food')
我收到了一个错误:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
我认为in
运算符未被覆盖以使用向量..
答案 0 :(得分:5)
这应该有效
df['type'] = np.where(df['food'].isin(['apple', 'banana', 'kiwi']), 'fruit', 'oth. food')
答案 1 :(得分:3)
我认为您可以使用isin
:
df['type'] = np.where(df['food'].isin(['apple', 'banana', 'kiwi']), 'fruit', 'oth. food')