合并不同尺寸DataFrame绘制列差值时保留缺失行与Region列的方法
解决方案
1. 调整merge逻辑保留全量行
你之前合并时默认用了内连接(inner join),只会保留两个表共有的Region值,因此美拉尼西亚的记录会被过滤。调整为以Region_education_0为左表的左连接即可保留全部5条记录:
# 合并时指定左连接,同名字段自动加后缀区分 merged_df = pd.merge( left=Region_education_0, right=Region_education_1, on="Region", how="left", # 核心参数:保留左表全部行 suffixes=("_edu0", "_edu1") ) # 计算薪资差值,缺失的Region_education_1薪资可按需填充为0或保留NaN merged_df["Diff_HigherEd_Vals"] = merged_df["ConvertedComp_edu0"] - merged_df["ConvertedComp_edu1"].fillna(0)
2. 调整style.bar参数保留Region列
style.bar的subset参数是指定需要渲染条形图的列,不是指定要展示的列。只要你没有主动删除Region列、也没有在样式设置里隐藏该列,默认就会正常展示:
# 仅给差值列加条形图,Region列默认保留显示 merged_df.style.bar( subset=["Diff_HigherEd_Vals"], # 不要把Region加进subset,不需要给文本列加条形图 align="mid", color=["#ff6b6b", "#4ecdc4"] )
常见踩坑排查
- 如果你之前合并后把
Region设为了索引,调用merged_df = merged_df.reset_index()把Region恢复为普通列即可正常展示 - 不要把
Region加入hide_columns参数列表,否则会被主动隐藏
内容的提问来源于stack exchange,提问作者Jaswanth gannamaneni
相关产品推荐
相关产品推荐

