为什么列显示在数据帧的末尾而不是前面



我的数据帧有以下列:

person_id   useless_1   useless_2   imp_1   ...   imp_58   useless_3   useless_4

我只想要一个具有person_idimp列的数据帧。但当我尝试时:

df=(df.iloc[:,:1])+(df.iloc[:,3:59])

我得到了所需的df,但person_id出现在所有imp列之后的末尾。为什么会发生这种情况?有什么办法把它带到前面吗?

抱歉问了这个琐碎的问题。

这里可能更适合DataFrame.filter,因为您可以按列名进行筛选,并且保留顺序:

df.filter(regex=(r'person_id|^imp'))

使用示例数据帧进行检查:

df = pd.DataFrame(columns=['person_id', 'useless_1', 'useless_2', 'imp_1', 'imp_58'])
df.filter(regex=(r'person_id|^imp'))
# person_id, imp_1, imp_58

基于您的逻辑

df[df.columns[:1].append(df.columns[3:])]

df.drop(df.columns[2:4], axis=1)

最新更新