2017-06-01 16 views
0

我有一个庞大的数据集试图用熊猫阅读。我试图将两列中的一列的值分开,并检查这些列之间是否有重叠值。使用下面的代码,结果是数组'b'和数组'c'中有一些值重叠。我想具体获取这些值,但不知道如何?任何人都可以指引我走向正确的方向吗?在Python中比较两个数组的值

df = pd.read_csv('....csv') 

df2 = df[df['Freq']>= 280] 
a=df2['Ring'].values 
b=df2['Ring'].drop_duplicates().values 

df3 = df[df['Freq']<= 280] 
df3['Ring'].values 
c=df3['Ring'].drop_duplicates().values 

if np.all(b) == np.all(c): 
    print ("They are overlapping") 
else: 
    print ("They are not overlapping") 

回答

0

根据所提供的例子,你可以做到以下几点:

import numpy as np 
np.intersect1d(b, c) 

,或者你也可以这样做:

cond = df['Freq'] >= 280 
np.intersect1d(df[cond]['Ring'], df[~cond]['Ring']) 
+0

与你提到的脚本的结果是有数组'c'和数组'b'中的值之间没有重叠,这是正确的,因为我手动检查并且没有重叠。但我的问题是,我的代码的“如果条件”有什么不对?!因为它给我“它们重叠” – user8034918

+0

'np.all'测试数组中的所有元素是否都是真的。所以基本上在你的if语句中,你正在测试'b'和'c'是否包含非零元素。 –