pandas为DataFrame新增列后列值顺序与预期不符该如何处理
问题原因
你定义label时使用的大括号{}会生成Python无序集合,本身不保留元素插入顺序,这是列值顺序不符合预期的核心原因。
解决方法
将label的定义从集合改为有序的列表类型,仅需把包裹元素的大括号替换为方括号[]即可,修改后代码如下:
# 大括号替换为方括号,生成保留顺序的列表 label=['meanMWac', 'meanMWin','SDMWac', 'SDMWin', 'meanLogPac', 'meanLogPin','SDLogPac','SDLogPin', 'meanNumHDonorsac','meanNumHDonorsin','SDNumHDonorsac','SDNumHDonorsin', 'meanNumHAcceptorsac', 'meanNumHAcceptorsin','SDNumHAcceptorsac','SDNumHAcceptorsin'] statistic_Ro5 = pd.concat(total, axis=0) Ro5 = pd.DataFrame(statistic_Ro5, columns=["stat"]) Ro5['label']= label Ro5
注意事项
请确保Ro5的行数和label列表的元素数量完全一致,否则会触发长度不匹配的赋值报错。
内容的提问来源于stack exchange,提问作者tassaneel
相关产品推荐
相关产品推荐

