我正在阅读一个表,在进一步处理之前,必须验证其所有值。有效值存储在我们与主表匹配的另一个表中。验证标准是按如下方式匹配多个列:
Table 1 (the main data we read in)
Name --- Unit --- Age --- Address --- Nationality
上面显示了我们从表中读取的列名,另一个表包含上述列的有效值。当我们只查看主表中的有效值时,我们必须考虑主数据表中列的组合,例如Name --- Unit --- Age。如果列组合的特定行中的所有值都与另一个表匹配,那么我们保留该行,否则我们将其删除。
如何解决Numpy的问题?
由于
答案 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:如果标题/列具有不同的名称,则无法使用