2017-01-26 6 views
0

私たちがそれをさらに処理する前に、すべての値を検証する必要があるテーブルを読んでいます。有効な値は、メインテーブルと一致する別のテーブルに格納されます。テーブル内の複数の列の組み合わせに一致する

Table 1 (the main data we read in) 

Name --- Unit --- Age --- Address --- Nationality 

上記は、我々はテーブルから読んでいる列名を示し、他のテーブルには、上記の列の有効な値が含まれています:検証基準は、次のようにいくつかの列を一致させることです。メインテーブルの有効な値だけを見るときは、メインデータテーブルの列の組み合わせ、たとえばName --- Unit --- Ageを考慮する必要があります。列の組み合わせの特定の行のすべての値が他の表と一致する場合は行を保持し、それ以外の場合は削除します。

Numpyの問題を解決するにはどうすればよいですか?

ありがとうございました

答えて

0

ただループすることができます。簡単/簡単な方法:

dummy_df = table_df ## make a copy of your table, since we are deleting rows we want to have the original df saved. 

relevant_columns = ['age','name','sex',...] ## define relevant columns, in case either dataframe has columns you dont want to compare on 

for indx in dummy_df.index : 

    ## checks if any row is identical, if so, drops it. 

    if ((np.array(dummy_df.loc[indx][relevant_columns]) == main_df[relevant_columns].values).sum(1) == len(relevant_columns)).sum() > 0: 

     dummy_df = dummy_df .drop(indx) 

ps:私はデータがpandasデータフレーム形式であると仮定しています。
はそれが役に立てば幸い:)

PS2:ヘッダ/列の名前が異なる場合には

を働く習慣
関連する問題