python - 比较 pandas 中的两列以使它们匹配

标签 python pandas

所以我有两个数据框,由 6 列组成,每列包含数字。我需要比较每个数据帧中的 1 列,以确保它们匹配并修复该列中不匹配的任何值。列已经排序并且它们的长度匹配。到目前为止,我可以找到列中的差异:

df1.loc[(df1['col1'] != df2['col2'])]

然后我得到索引 #,其中 df1df2 不匹配。然后,我将转到 df2 中的相同索引 # 找出 col2 中的哪个值导致不匹配,然后使用它将该值更改为 df2 中找到的正确值>:

df1.loc[index_number, 'col1'] = new_value

有没有一种方法可以自动修复不匹配项,而无需手动查找 df2 中的正确值?

最佳答案

如果 df2 是权威来源,则无需检查 df1 是否相等

df1.loc[:, 'column_name'] = df2['column_name']

但是如果我们必须检查

c = 'column_name'
df1.loc[df1[c] != df2[c], c] = df2[c]

关于python - 比较 pandas 中的两列以使它们匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41266029/

相关文章:

python - 查询阻塞时如何捕获此警告消息?

python - 在 Lucene/Solr、Whoosh、Sphinx、Xapian 中,哪个与 Python 集成得最好?

python - 如何在预测后取消缩放数据?

python - if语句语法错误

python - Pandas 中多索引的百分比

python - 在数据帧上使用 python 进行快速文本处理

python - 将 Pandas Dataframe 转换为特定格式

python - MySQL选择字段的元素数

python - 如何在 jupyter notebook 中将整个 pandas 数据框右移?

python-3.x - 加速 agg 并加入十亿记录的 Pandas 表