2017-06-16 30 views
0

我有兩個Python表,訪問者訂單訪客有更多的行比訂單,因爲並不是每個訪客都會購買。使用熊貓來檢查一個表中的值是否出現在另一個表中

我想回到一個名爲非訂單新表,基本上包含所有存在於遊客但不是在訂單標識。

關於如何在Python中使用熊貓來實現這個建議?

+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') 
相關問題