2017-01-26 2 views
0

Я читаю таблицу, где все ее значения должны быть проверены до того, как мы обработаем ее дальше. Допустимые значения сохраняются в другой таблице, с которой мы сопоставляем нашу основную таблицу. Критерии проверки является соответствие несколько столбцов следующим образом:сопоставление нескольких комбинаций столбцов в таблице

Table 1 (the main data we read in) 

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

выше показывает имена столбцов, которые мы читаем из таблицы, а другая таблица содержит допустимые значения указанных столбцов. Когда мы смотрим только на допустимые значения в нашей основной таблице, мы должны рассмотреть комбинацию столбцов в основной таблице данных, например Name --- Unit --- Age. Если все значение в определенной строке для комбинации столбцов совпадает с другой таблицей, мы сохраняем строку, иначе мы удалим ее.

Как решить проблему с помощью Numpy?

Thanks

ответ

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: Я предполагаю, что данные находятся в формате dataframe панд.
надеюсь, что это помогает :)

ps2: если заголовки/столбцы имеют разные названия, что не будет работать

Смежные вопросы