dataframe上下行比较_比较两个DataFrame并并排输出它们的差异

本文介绍如何对比两个Python Pandas DataFrame并突出显示它们之间的差异。通过逐行逐列比较,找出变化的行和列,并生成HTML表格展示原始值、新值以及变化的标识。
摘要由CSDN通过智能技术生成

I am trying to highlight exactly what changed between two dataframes.

Suppose I have two Python Pandas dataframes:

"StudentRoster Jan-1":

id Name score isEnrolled Comment

111 Jack 2.17 True He was late to class

112 Nick 1.11 False Graduated

113 Zoe 4.12 True

"StudentRoster Jan-2":

id Name score isEnrolled Comment

111 Jack 2.17 True He was late to class

112 Nick 1.21 False Graduated

113 Zoe 4.12 False On vacation

My goal is to output an HTML table that:

Identifies rows that have changed (could be int, float, boolean, string)

Outputs rows with same, OLD and NEW values (ideally into an HTML table) so the consumer can clearly see what changed between two dataframes:

"StudentRoster Difference Jan-1 - Jan-2":

id Name score isEnrolled Comment

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我理解了你的问题。你想对两个DataFrame的所有列进行比较,并添加对比结果。具体来说,你想比较两个DataFrame的每一行,如果某行在两个DataFrame中的所有列上的值都相同,那么就在这一行上添加一个标记,表示这两个DataFrame中的值相同。 我可以提供一个简单的方法来实现这个功能。首先,我们可以使用pandas的equals()方法来比较两个DataFrame是否相同。这个方法会返回一个布尔值,表示两个DataFrame是否相同。接下来,我们可以使用apply()方法来对每一行进行比较。在apply()方法中,我们可以使用equals()方法来比较两个DataFrame的相应行是否相同。如果两个DataFrame的相应行相同,我们就可以在这一行上添加一个标记。最后,我们可以将这个标记添加到原始的DataFrame中,以便进一步处理。 下面是一个示例代码,可以帮助你完成这个任务: ```python import pandas as pd # 生成两个DataFrame df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) df2 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 7]}) # 定义比较函数 def compare_rows(row1, row2): if row1.equals(row2): return 'Same' else: return 'Different' # 对每一行进行比较,并添加标记 df1['Compare'] = df1.apply(lambda x: compare_rows(x, df2.loc[x.name]), axis=1) # 输出结果 print(df1) ``` 运行上述代码后,你就可以得到一个新的DataFrame,其中添加了一个名为“Compare”的列,用于标记两个DataFrame中的对应行是否相同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值