如何按索引高亮Pandas DataFrame行?合并后高亮指定行示例
高亮合并后DataFrame的指定行
首先,先确认你合并后的new_df结构,运行你的代码后得到的结果是:
col1 Col2_x Col2_y 0 A home NaN 1 B car NaN 2 C banana banana 3 D NaN garden 4 F NaN boat
你需要高亮的是第三行(也就是index为2的行,对应col1=C的那一行)。下面是用Pandas Styler实现的完整方案:
完整代码实现
import pandas as pd # 你的原始数据和合并代码 d1 = {"col1" : ['A', 'B', 'C'], "Col2": ["home", "car","banana" ]} d2 = {"col1" : ['D', 'F','C'], "Col2": ["garden", "boat","banana" ]} df1 = pd.DataFrame(data=d1) df2 = pd.DataFrame(data=d2) new_df = pd.merge(df1, df2, on ='col1', how='outer') # 定义高亮函数:给指定行添加背景色 def highlight_row(row): # 判断是否是第三行(index=2,Python索引从0开始) if row.name == 2: return ['background-color: yellow'] * len(row) else: return [''] * len(row) # 应用样式并渲染 styled_df = new_df.style.apply(highlight_row, axis=1) # 如果是在Jupyter环境中,直接显示styled_df即可 styled_df
代码解释
highlight_row函数接收每一行数据,通过row.name获取行的index,判断是否是你需要的第三行(index=2)。- 如果是目标行,返回一个和行长度一致的样式列表,这里用
yellow背景色高亮,你可以换成其他颜色比如lightgreen。 - 用
style.apply方法,指定axis=1来逐行应用这个样式函数。 - 在Jupyter Notebook/ Lab中,直接输出
styled_df就能看到高亮后的表格;如果需要导出为HTML文件,可以用styled_df.to_html('highlighted_table.html')。
这样就能完美高亮你需要的那一行啦!
内容的提问来源于stack exchange,提问作者ila tikkral
相关产品推荐
相关产品推荐

