我有一个包含客户数据的数据框,客户名称在一个名为“customer”的列中。我还有一个“成员”列表。一些客户也在会员名单中,但有些则不是。如果客户是会员,我希望它为TRUE,如果不是,则为FALSE。
这就是我所拥有的:
df[customer].isin([members])
但错误告诉我“不可用的类型:'列表'”。
我也试过了:
df[customer] in [members]
并且错误告诉我“数组的长度不同:118816 vs 1171”
任何帮助将不胜感激!
答案 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