2017-07-13 118 views
2

我有2個數組,1000個值之一和另一個8448值。 我tryig計數兩個數據框中的標識值的數量。熊貓numpy比較兩個不同大小的數組

t1 = dfRight['X'].values 
t2 = dfLeft['X'].values 
t1 == t2 

但它返回「假」,有人知道一個簡單的方法來做到這一點嗎?

回答

4

試試這個:

np.intersect1d(t1, t2) 

或使用熊貓:

dfRight.merge(dfLeft, on='X') 

數據:

In [79]: dfRight 
Out[79]: 
    X 
0 1 
1 3 
2 5 
3 7 

In [80]: dfLeft 
Out[80]: 
    X 
0 1 
1 2 
2 3 
3 4 
4 5 
5 6 
6 7 
7 8 
8 9 

合併:

In [82]: dfRight.merge(dfLeft, on='X') 
Out[82]: 
    X 
0 1 
1 3 
2 5 
3 7 

計數:

In [81]: dfRight['X'].isin(dfLeft['X']).sum() 
Out[81]: 4