如何检查单元格数据是否存在于两个不同的数据框行中

时间:2019-05-28 19:23:15

标签: pandas python-2.7

我有两个文件。他们已经按第一列排序。 我需要一些如何检查第一个文件中的行数据是否等于(或存在)第二个文件中的同一行。 如果数据不存在(意味着新值或已更改),我想使用“”更新两个文件。

示例

dependencies {
    externalLibs files('libs/a.jar', 'libs/b.jar')
}

col1 col2 col3 col4

val1 val2 val3 val4
val5 val6 val7 val8

结果

old_updated

col1 col2 col3 col4 
val1 val2 val3 val4
val9 val5 val6 val7 

new_updated

col1 col2 col3 col4 col5
val1 val2 val3 val4 nan
     val5 val6 val7 val8

我已经尝试过将isin用于系列

1 个答案:

答案 0 :(得分:0)

这是使用将 indicator 标志设置为True的熊猫合并的开始。这将添加一列,告诉您该行的源是什么。

dfnew = pd.DataFrame([["x","y","z","t"], ["a","s","b","e"]], 
                     columns=("col1","col2","col3","col4"))
dfold = pd.DataFrame([["x","y","z","t"],["d","a","b","t"]], 
                     columns=("col1","col2","col3","col4"))

df_merge = pd.merge(dfnew, dfold, how="outer", indicator=True)
>>>
  col1 col2 col3 col4      _merge
0    x    y    z    t        both
1    a    s    b    e   left_only
2    d    a    b    t  right_only

通过外部联接,您将看到所有内容。如果只希望表示how="left"行,则可以执行dfnew

在这里,您可以视需要在_merge列等处进行遮罩。您的用例尚不明确,因此可以助您一臂之力。