Python Pandas:通过Pandas.DataFrame.update更新单元格

Python Pandas:通过Pandas.DataFrame.update更新单元格,python,pandas,dataframe,Python,Pandas,Dataframe,我正在使用pandas.DataFrame.update合并两个数据帧,如 import pandas as pd df1 = pd.DataFrame( {'ID': [101, 102, 103], 'A': ['..', '..', '..'], 'B': ['..', '..', '..'], }).set_index('ID') df2 = pd.DataFrame( {'ID': [101, 102, 223], 'A': ['..

我正在使用
pandas.DataFrame.update
合并两个数据帧,如

import pandas as pd

df1 = pd.DataFrame(
    {'ID': [101, 102, 103],
     'A': ['..', '..', '..'],
     'B': ['..', '..', '..'], 
}).set_index('ID')

df2 = pd.DataFrame(
    {'ID': [101, 102, 223],
     'A': ['..', '..', '..'],
     'B': ['..', 'XY', '..'],
}).set_index('ID')

df1.update(df2)
如何获取单元格(在本例中为ID 102的B列),例如应用某些格式?我的目标是用黄色背景标记所有已更新的单元格


感谢您的支持。

想法是将原始的
df11
数据帧与更新的自定义函数进行比较,并传递给:


谢谢你的快速回复。不幸的是,这对我不起作用。我可以运行没有任何错误的代码,但是HTML输出中没有黄色背景…@maxiw46-你在Jupiter笔记本中运行代码吗?或者您是否使用类似于
df1.reset\u index().style.apply(高亮显示,axis=None).render()
?我正在使用
.to\u html()
来处理df1。但即使我打印df3,它也是空的。因此,我认为比较这两个DFs可能会有一些问题。。。总之,最终我的目标是将其导出到excel并应用格式…@jezrael您的代码中有一个小的打字错误(
df11
vs.
df1
),除此之外,代码在Jupyter中对我来说运行良好。@Moritz-您认为
df11.ne(x)
df1 = pd.DataFrame(
    {'ID': [101, 102, 103],
     'A': ['..', '..', '..'],
     'B': ['..', '..', '..'], 
}).set_index('ID')

df2 = pd.DataFrame(
    {'ID': [101, 102, 223],
     'A': ['..', '..', '..'],
     'B': ['..', 'XY', '..'],
}).set_index('ID')


df11 = df1.reset_index().copy()
df1.update(df2)


def highlight(x):
    c1 = 'background-color: yellow'

    df3 = pd.DataFrame('', index=x.index, columns=x.columns)
    df3 = df3.mask(df11.ne(x), c1)
    return df3

df1.reset_index().style.apply(highlight, axis=None).to_excel('file.xlsx', index=False)