分享
三行代码  ›  专栏  ›  技术社区  ›  ufulu

Pandas将某些列的顺序颠倒并非全部

  •  1
  • ufulu  · 技术社区  · 3 天前

    有一些解决方案可以颠倒此处所有列的顺序,例如:

    df = df.iloc[:,::-1]

    我想实现的是从第2列开始颠倒列的顺序,所以我想把A和B放在同一个位置,然后只颠倒列的顺序。因为我有几百列,不想手工写订单。

    我的初始列是:

    | A | B | C | D | E | F |
    |---|---|---|---|---|---|
    
    

    我要找的结果是:

    | A | B | F | E | D | C |
    |---|---|---|---|---|---|
    
    

    谢谢!

    2 回复  |  直到 3 天前
        1
  •  0
  •   mcsoini    3 天前
    df[list(df.columns[:2]) + list(df.columns[:1:-1])]
    
        2
  •  0
  •   jezrael    3 天前

    使用 numpy.r_ 用于索引的连接和tehn select by DataFrame.iloc :

    df = pd.DataFrame(columns=list('ABCDEF'))
    
    print (df.iloc[:, np.r_[0:2, len(df.columns)-1:1:-1]])
    Empty DataFrame
    Columns: [A, B, F, E, D, C]
    Index: []
    

    或者两者都看 DataFrame s与 join :

    print (df.iloc[:, :2].join(df.iloc[:, :1:-1]))
    Empty DataFrame
    Columns: [A, B, F, E, D, C]
    Index: []