检查数据框列中的值是否在列表中 - Python

时间:2017-12-19 18:46:55

标签: python pandas

我有一个包含客户数据的数据框,客户名称在一个名为“customer”的列中。我还有一个“成员”列表。一些客户也在会员名单中,但有些则不是。如果客户是会员,我希望它为TRUE,如果不是,则为FALSE。

这就是我所拥有的:

df[customer].isin([members])

但错误告诉我“不可用的类型:'列表'”。

我也试过了:

df[customer] in [members]

并且错误告诉我“数组的长度不同:118816 vs 1171”

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

members的通话中,df['customer'].isin()周围有一组额外的方括号。此外,您不会在列名customer周围添加引号。您的代码应如下所示:

df['customer'].isin(members)

答案 1 :(得分:-3)

我不熟悉数据框架,但它看起来像df [customer]和[members]是列表列表。

如果是这种情况,您可以使用numpy(或者如果您选择客户而不是整个客户列表,数据框可能会有效。)

import numpy as np

customers = [[mark], [tom], [jane], [bill]]
members = [[tom], [jane]]
array_of_members = np.array(members)

for customer in customers:
    if customer in array_of_members:
        #do something