如何重排DataFrame列,将指定列设置为第一列?
重排DataFrame列,将指定列设为首列
有两种简单实用的方法可以实现这个需求:
方法一:构造新列顺序列表
通过列表推导式生成目标列顺序——先放指定列,再追加剩余所有列(保留原有顺序),之后重新索引DataFrame:
import pandas as pd # 示例DataFrame data = {'AA': [1,2,3], 'BB': [4,5,6], 'DD': [7,8,9]} df = pd.DataFrame(data) col_name = 'BB' # 生成目标列顺序并重新索引 new_cols = [col_name] + [col for col in df.columns if col != col_name] df = df[new_cols] # 验证结果 print(df.columns) # 输出: Index(['BB', 'AA', 'DD'], dtype='object')
这种方法会返回新的DataFrame,适合不想改动原数据的场景。
方法二:原地修改原DataFrame
通过pop取出指定列,再用insert将其插入到第0位(首列),直接修改原数据:
import pandas as pd # 示例DataFrame data = {'AA': [1,2,3], 'BB': [4,5,6], 'DD': [7,8,9]} df = pd.DataFrame(data) col_name = 'BB' # 弹出指定列并插入到首位 target_col = df.pop(col_name) df.insert(0, col_name, target_col) # 验证结果 print(df.columns) # 输出: Index(['BB', 'AA', 'DD'], dtype='object')
这种操作更简洁,不需要额外生成列列表,直接在原DataFrame上完成修改。
内容的提问来源于stack exchange,提问作者jacques
相关产品推荐
相关产品推荐

