并排比较数据帧并显示差异
为了识别数据差异,经常需要比较两个数据帧并强调它们之间的变化。考虑以下示例:
"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
要获得所需的输出,首先确定已发生任何更改的行:
ne = (df1 != df2).any(1)
接下来,确定已更改的特定条目:
ne_stacked = (df1 != df2).stack() changed = ne_stacked[ne_stacked] changed.index.names = ['id', 'col']
继续提取已更改条目的原始值和更新值:
difference_locations = np.where(df1 != df2) changed_from = df1.values[difference_locations] changed_to = df2.values[difference_locations]
最后,以用户友好的表格格式呈现差异:
pd.DataFrame({'from': changed_from, 'to': changed_to}, index=changed.index)
这种方法提供了两个数据帧之间差异的全面总结,突出显示更改的值及其位置,从而能够快速有效地分析数据差异。
以上是如何轻松识别和显示数据帧之间的差异的详细内容。更多信息请关注PHP中文网其他相关文章!