2017-06-01 12 views
0

私は大きなデータセットをPandasで読み込もうとしています。私は2つの部分の列の1つの値を分割し、これらのセットの間に重複する値があるかどうかを確認しようとしています。下のコードでは、配列 'b'と配列 'c'に重複する値があります。私はそれらの値を具体的に取得したいが、どのようにわからないのか?誰かが私を正しい方向に向けることができますか?Pythonで2つの配列の値を比較する

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'の値が重複することはなく、手動でチェックして重複がないので正しい。しかし、私の質問は、私のコードの "if条件"に何が間違っているのでしょうか? 「重複しています」 – user8034918

+0

'np.all'は配列のすべての要素が真であるかどうかをテストします。したがって、基本的にifステートメントでは、 'b'と' c'の両方に非ゼロ要素が含まれているかどうかをテストしています。 –

関連する問題