Python:根据列在列表中的存在重新指定列值

Python:根据列在列表中的存在重新指定列值,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,我想检查列表中是否存在dataframe列(item_type)值。如果不是,我想将现有列值重新指定给另一个值。这是我正在尝试的代码 item_cat = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] pdata['item_type'] = np.where((pdata['item_type'] not in item_cat) , 'I', pdata['item_type']) 我得到下面的错误 ValueError: The truth val

我想检查列表中是否存在dataframe列(item_type)值。如果不是,我想将现有列值重新指定给另一个值。这是我正在尝试的代码

item_cat = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
pdata['item_type']  = np.where((pdata['item_type'] not in item_cat) , 'I', pdata['item_type']) 
我得到下面的错误

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()
我该如何解决这个问题

item_cat = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']

a = pd.Series(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'Z'])
a.loc[~a.isin(item_cat)] = 'I'