我有两个文件。它们已经按第一列排序。我需要一些如何检查第一个文件中的行数据是否等于(或存在(第二个文件中的同一行。如果数据不存在(意味着新值或已更改(,我想用" "更新两个文件。
例
老
col1 col2 col3 col4
val1 val2 val3 val4
val5 val6 val7 val8
新增功能
col1 col2 col3 col4
val1 val2 val3 val4
val9 val5 val6 val7
结果
old_updated
col1 col2 col3 col4 col5
val1 val2 val3 val4 nan
val5 val6 val7 val8
new_updated
col1 col2 col3 col4 col5
val1 val2 val3 val4
val9 val5 val6 val7
我已经尝试过系列的伊辛
这是使用熊猫合并的开始,指标标志设置为 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
使用外部联接,您将看到所有内容。如果只想表示dfnew
行,则可以执行how="left"
。
从这里,您可以根据需要在_merge
列等上遮罩。您的用例不清楚,因此这应该可以让您继续前进。