如何有条件地将列填充到列表中其他列中的值?

时间:2016-04-11 14:10:31

标签: python pandas dataframe

在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运算符未被覆盖以使用向量..

2 个答案:

答案 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')