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)