如何使用 Python 有效比较和显示数据帧差异

Mary-Kate Olsen
发布: 2024-10-22 20:10:39
原创
324 人浏览过

How to Compare and Display Dataframe Differences Effectively Using Python

有效比较和显示数据帧差异

简介

识别和理解两者之间的差异数据帧是数据分析中的常见任务。无论是将历史数据与当前趋势进行比较,还是跟踪数据库中的变化,准确突出显示这些变化的能力都是至关重要的。

问题陈述

假设我们有两个数据框包含两个不同月份的学生名册信息:“StudentRoster Jan-1”和“StudentRoster Jan-2”。我们的目标是创建一个 HTML 表格,清楚地显示这两个数据帧之间的更改,显示每行的新值和旧值。

解决方案

识别更改的行

第一步是确定哪些行实际上已更改。我们可以使用 any() 函数检查每一行是否有任何差异:

<code class="python">import pandas as pd
import numpy as np

ne = (df1 != df2).any(1)</code>
登录后复制

这将返回一个布尔系列,其中 True 表示更改的行。

提取更改的值

接下来,我们需要提取实际更改的值。我们使用 .stack() 方法将数据帧转换为单个列,然后过滤该列以查找更改的值:

<code class="python">ne_stacked = (df1 != df2).stack()
changed = ne_stacked[ne_stacked]
changed.index.names = ['id', 'col']</code>
登录后复制

这将为我们提供更改值的索引和列名称。

提取先前值和新值

使用更改值中的索引,我们可以提取每个更改条目的先前值和新值:

<code class="python">difference_locations = np.where(df1 != df2)
changed_from = df1.values[difference_locations]
changed_to = df2.values[difference_locations]</code>
登录后复制

创建 HTML 表格

最后,我们可以通过组合提取的值来创建 HTML 表格:

<code class="python">pd.DataFrame({'from': changed_from, 'to': changed_to}, index=changed.index)</code>
登录后复制

此数据框包含两列:“from”和“to”,显示每个更改条目的原始值和新值。数据框的索引标识发生更改的行和列。

通过并排显示更改的值及其先前值和新值,此 HTML 表格提供了更改的清晰全面的概述两个数据框之间。

以上是如何使用 Python 有效比较和显示数据帧差异的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!