2017-06-16 15 views
0

私は2人のPythonテーブル訪問者の注文を持っています。 訪問者は、すべての訪問者が購入を終了するわけではないので、注文より多くの行を持っています。パンダを使用してあるテーブルの値が別のテーブルに存在するかどうかを調べる

は、私は基本的に受注訪問者ではなく、中に存在しているIDが含まれてい以外の受注と呼ばれる新しいテーブルを返すようにしたいです。

Pythonでpandasを使用してこれを実装する方法に関する提案はありますか?

+0

あなたはこれを満足させようとしたコードともしあれば遭遇したエラーを提供する必要があります。 – ToothlessRebel

答えて

2
import pandas as pd  
visitors = pd.DataFrame({'id': [0, 1, 2, 3, 4]}) 
orders = pd.DataFrame({'id': [0, 1]}) 
nonorders=visitors.loc[~visitors.id.isin(orders.id),] 

Out[57]: 
    id 
2 2 
3 3 
4 4 
0

あなたは(ウェンと同じデータを使用して)numpyの中でそれを行うことができます。

np.setdiff1d(visitors,orders) 
#array([2, 3, 4]) 

同じ純粋なパンダで、おそらくですが、多少面倒:

visitors.set_index('id').index.difference(orders.set_index('id').index) 
#Int64Index([2, 3, 4], dtype='int64', name='id') 
関連する問題