将 Pandas 数据框列移到开头

分享于2022年07月17日 dataframe pandas python 问答
【问题标题】:将 Pandas 数据框列移到开头(Moving Pandas Dataframe Columns to the start)
【发布时间】:2022-01-26 00:00:38
【问题描述】:

我有一个包含将近一千个列的 pandas 数据框

列标题是这样的

[smth,smth,smth,smth.....a,b,c,d,e]

我将如何重新排列列以将 A,B,C,D,E 移到开头:

[a,b,c,d,e,smth,smth......]

  • 您想反转列的顺序吗?喜欢 df.iloc[:, ::-1] ?
  • [smth, smth, smth, ...] 是什么意思?除了最后几个之外,它们都一样吗?
  • 不,它只是不相关
  • 我不想颠倒它们,我只是希望它们按顺序排列,最后五个成为前 5 个。(最后一个成为第 5 个等)

【解决方案1】:

如果您只是想将最后 n 列移到第一个。您可以更改列顺序并使用该选择覆盖数据框

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0,100,size=(100, 5)), columns=list('ABCDE'))
cols = list(df.columns)
cols_shift = 2
new_cols = []
new_cols.extend(cols[-cols_shift:])
new_cols.extend(cols[:-cols_shift])
new_cols

df = df[new_cols]
df