我试图准确突出两个数据帧之间的变化。
假设我有两个 Python Pandas 数据框:
"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
我的目标是输出一个 HTML 表格:
- 标识已更改的行(可以是 int、float、boolean、string)
- 输出具有相同的旧值和新值的行(理想情况下输出到 HTML 表中),以便消费者可以清楚地看到两个数据帧之间发生了什么变化:
"StudentRoster Difference Jan-1 - Jan-2":
id Name score isEnrolled Comment
112 Nick was 1.11| now 1.21 False Graduated
113 Zoe 4.12 was True | now False was "" | now "On vacation"
我想我可以逐行和逐列进行比较,但是有更简单的方法吗?
原文由 sky 发布,翻译遵循 CC BY-SA 4.0 许可协议
第一部分和Constantine类似,可以得到哪些行为空的boolean*:
然后我们可以看到哪些条目发生了变化:
这里第一个条目是索引,第二个条目是已更改的列。
\* 注意:重要的是
df1
和df2
在这里共享相同的索引。为了克服这种歧义,您可以确保只使用df1.index & df2.index
查看共享标签,但我想我会把它留作练习。