2017-07-13 79 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