繁体   English   中英

pandas 通过比较两个数据帧中的列来删除相等的行

[英]pandas remove equal rows by comparing columns in two dataframes

df1 = [['tom', 10, 1.2], ['nick', 15, 1.3], ['juli', 14, 1.4]]

在此处输入图像描述

df1 = [['tom', 10, 1.2], ['nick', 15, 1.3], ['juli', 100, 1.4]]

在此处输入图像描述

当我尝试使用以下代码比较和删除相等时

diff = df1.compare(df2, align_axis=1, keep_equal=True, keep_shape=True).drop_duplicates(
    keep=False).rename(index={'self': 'df1', 'other': 'df2'}, level=-1)

我正进入(状态

在此处输入图像描述

我只想保留有任何不相等记录的那一行并删除剩余的。 这意味着 output 中应该只有最后一行,而不是所有行都像打击一样。 请提出更改建议。

在此处输入图像描述

假设您想要 df1 中与 df2 不匹配的所有内容

n_columns = len(df1.columns)
df1[(df1 == df2).apply(sum, axis=1).apply(lambda x: x != n_columns)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM