熊猫:获取由pandas.DataFrame.update更新的单元格

时间:2020-11-10 07:51:52

标签: python pandas dataframe

我正在使用$ install:install -e admin_email -p admin_password -t site_name合并两个数据框,例如

pandas.DataFrame.update

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

感谢您的支持。

1 个答案:

答案 0 :(得分:2)

想法是将原始df11数据帧与自定义函数中已更新的数据进行比较,然后传递给http://xregexp.com/

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)