【发布时间】:2023-01-09 20:11:52
【问题描述】:
我有两个数据帧 df1 和 df2。我想用黄色突出显示 df1 中也存在于 df2 中的所有行。
到目前为止,我只找到了插入另一行并在那里使用变量来标识我必须为哪一行着色的解决方案。
我的问题是是否可以在下面介绍的函数中直接比较这两个 df。
所以这是两个 df:
df1 = pd.DataFrame([['AA',3,'hgend',1], ['BB','frdf',7,2], ['C1',4,'asef',4], ['C2',4,'asef',4], ['C3',4,'asef',4]], columns=list("ABCD"))
df2 = pd.DataFrame([['C1',4,'asef',4], ['C2',4,'asef',4], ['C3',4,'asef',4]], columns=list("XYZQ"))
这是我为行着色的代码:
def highlight_rows(row):
value = row.loc['A']
if value == 'C1':
color = 'yellow'
else:
color = ''
return ['background-color: {}'.format(color) for r in row]
df1.style.apply(highlight_rows, axis=1)
正如我所说,如果我事先进行比较,插入另一列并在其中放置一个变量,然后我可以搜索该变量并突出显示该行。 我的问题是我是否也可以直接在函数中执行此操作。为此,我必须能够比较函数中的两个 df。这可能吗?能够比较一行就足够了,例如与.isin
【问题讨论】:
标签: python pandas dataframe styler