如何将DataFrame指定列移至首位?(适用于多列场景)
解决方法
这里有两种高效的方法,不用手动罗列所有100列就能把指定列移到首位:
方法1:pop + insert 组合
先通过pop()取出目标列,再用insert()把它放到第0位(首位),代码如下:
# 取出目标列,pop会从原DataFrame中移除该列并返回它 target_col = df.pop('Gross foreign liabilities') # 将取出的列插入到索引0的位置(首位),指定列名和数据 df.insert(0, 'Gross foreign liabilities', target_col)
要是之前用pop()报错,大概率是列名拼写有误,或者没正确接收返回的列数据,按上面的写法就没问题。
方法2:重构列名列表
直接构造新的列顺序,把目标列放在最前面,后面跟上剩下的所有列:
# 生成新列名列表:目标列 + 排除目标列后的其他所有列 new_column_order = ['Gross foreign liabilities'] + [col for col in df.columns if col != 'Gross foreign liabilities'] # 按新顺序重新排列DataFrame的列 df = df[new_column_order]
这种方法更直观,适合不想修改原DataFrame结构(可以选择不原地修改)的场景。
两种方法都能轻松处理100列的情况,不用手动写全所有列名。
内容的提问来源于stack exchange,提问作者Carl
相关产品推荐
相关产品推荐

