匹配表

时间:2017-01-26 10:43:02

标签: numpy

我正在阅读一个表,在进一步处理之前,必须验证其所有值。有效值存储在我们与主表匹配的另一个表中。验证标准是按如下方式匹配多个列:

Table 1 (the main data we read in)

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

上面显示了我们从表中读取的列名,另一个表包含上述列的有效值。当我们只查看主表中的有效值时,我们必须考虑主数据表中列的组合,例如Name --- Unit --- Age。如果列组合的特定行中的所有值都与另一个表匹配,那么我们保留该行,否则我们将其删除。

如何解决Numpy的问题?

由于

1 个答案:

答案 0 :(得分: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:如果标题/列具有不同的名称,则无法使用