Python-Pandas。根据列表中列的存在重新分配列的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python-Pandas。根据列表中列的存在重新分配列的值相关的知识,希望对你有一定的参考价值。

我想检查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'

以上是关于Python-Pandas。根据列表中列的存在重新分配列的值的主要内容,如果未能解决你的问题,请参考以下文章

使用 lapply 更改列表元素中列的格式

如何根据pig中列的不同值拆分关系

根据table2选择table1中列的总和? [复制]

更新查询以根据另一表中的值更改一个表中列的现有值

根据data.table中列的最大值自定义dcast内部的聚合函数?

更新查询以根据不同表中的值更改一个表中列的现有值