Python Pandas DataFrame设置自定义索引出现NaN值问题咨询
问题原因
你调用pd.DataFrame(v, index=Values)重新构造数据表时,Pandas会按照索引标签做数据对齐,原有数据表的索引是默认的0、1、2,和你传入的['First', 'Second', 'Third']索引标签完全不匹配,所以对应位置找不到有效数据,就全部返回了nan。
解决方案
你不需要重新构造DataFrame,直接修改已有DataFrame的index属性替换索引标签即可,原有行数据的顺序和内容不会发生变化,不会出现空值。
原有逻辑不需要调整,仅替换最后循环部分的代码即可:
for k,v in df_dic.items(): # 直接替换索引标签,无需重新构造数据表 v.index = Values display(v.style.set_caption(k).set_table_styles([{ 'selector': 'caption', 'props': [ ('color', 'red'), ('font-size', '16px'), ('text-align', 'center') ] }]))
如果你只需要替换原本是默认整数索引的表,保留row 1、row 2、row 3这类自定义索引,可以加判断逻辑:
for k,v in df_dic.items(): # 仅对索引为默认0、1、2的表做替换 if (v.index == [0,1,2]).all(): v.index = Values display(v.style.set_caption(k).set_table_styles([{ 'selector': 'caption', 'props': [ ('color', 'red'), ('font-size', '16px'), ('text-align', 'center') ] }]))
内容的提问来源于stack exchange,提问作者georgehere
相关产品推荐
相关产品推荐

