2017-05-26 1 views
0

私はこのようになりますリストとパンダのデータフレームのデータを持っている:私はリストにないリストをuser_idを見つけようとしてきましたないパンダのデータフレームのデータでリストの値を検索

user_id = [10, 15, 20, 25, 30, 32, 40, 45, 50] 

user_id value 
10  45 
20  49 
25  19' 
30  58 
32  48 

を。 私の希望する結果は

result = [15, 40, 45, 50] 

希望の結果を得る最も簡単な方法は何ですか? (現在〜ループの結果があります)

ありがとうございます。

+0

これまでに何を試しましたか?あなたは何を得ていますか、それはあなたが望むものとどのように違うのですか? –

答えて

3

は、集合演算を使用します。

list(set(user_id)-set(df.user_id)) 
Out[84]: [40, 50, 45, 15] 
+0

いいです、私は交差点で試していましたが、これは簡単です:) – Vaishali

1

あなただけの他のリストにあなたの元のリストに含まれていないものを見つけるために、リストの内包表記を使用し、リストにUSER_ID列を変更することができます。

user_id = [10, 15, 20, 25, 30, 32, 40, 45, 50] 
df = pd.DataFrame({'user_id': [10, 20, 25, 30, 32], 'value': [45, 49, 19, 58, 48]} 
df_user_id = df['user_id'].tolist() 
result = [x for x in user_id if x not in df_user_id] 

[15, 40, 45, 50] 
1

Series.isin()には否定(~)を使用できます。

df[~df["user_id"].isin(set(user_id))]

への変換は、あなたがより良い時間を実行しているだろうとが常に望ましい設定しました。

関連する問題