我有两个形状相同的数据框,需要将数据框的每个单元相互比较。如果它们不匹配或一个值为null,则必须编写较大的数据框以突出显示不匹配或null值为true的单元格。
我将这两个数据框差异计算为另一个具有布尔值的数据框。
data1 = [['tom', 10], ['nick', 15], ['juli', 14]]
data2=[['tom', 10], ['sam', 15], ['juli', 14]]
# Create the pandas DataFrame
df1 = pd.DataFrame(data, columns = ['Name', 'Age'])
df2 = pd.DataFrame(data2, columns = ['Name', 'Age'])
df1.replace(r'^\s*$', np.nan, regex=True, inplace=True)
df2= pd.read_excel(excel_file, sheet_name='res', header=None)
df2.replace(r'^\s*$', np.nan, regex=True, inplace=True)
df2.fillna(0, inplace=True)
df1.fillna(0, inplace=True)
difference = df1== df2 #this have boolean values True if value match false if mismatch or null
现在我想写df1并根据差异突出显示单元格。例如,如果差分cell1的值为false,则我希望将df1 cell1设置为黄色,然后将整个df1的高亮显示为excel。
这里是df1和df2,我希望this作为最终答案。在最终答案中,尼克被突出显示(我想用背景色突出显示)。
我已经尝试使用熊猫Styler.applymap和Styler.apply,但由于涉及两个数据框而没有成功。也许我不能直接考虑这个问题。
df1:
df2: