2017-12-19 9 views
0

私は顧客データを持つデータフレームを持っており、顧客名は "customer"という列にあります。私はまた、 "メンバー"のリストを持っています。顧客の中には会員リストに入っているものもあれば、そうでないものもあります。顧客がメンバーの場合は、TRUE、そうでない場合はFALSEにします。データフレーム列の値がリストにあるかどうかをチェックする - Python

df[customer].isin([members]) 

が、エラーは、「非ハッシュタイプ: 『リスト』を」私に言っている:

は、ここで私が持っているものです。

私も試してみた:

df[customer] in [members] 

を、エラーが "配列が異なる長さだった:1171 VS 118816" 私に指示

任意の助けをいただければ幸いです!

+2

'dfの[顧客] .isin(メンバーは)'メンバーの要素はハッシュ可能ですと仮定し、正しい方法です。 – ayhan

+0

これらの厄介な括弧!これは機能します。ありがとうございました! – pixiesweet44

答えて

-2

私はデータフレームに慣れていませんが、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 
0

あなたはdf['customer'].isin()へのお電話でのmembers周りの角括弧の余分なセットを持っています。また、カラム名customerの前後に引用符がありません。あなたのコードは次のようになります。

df['customer'].isin(members)

関連する問題