Python學習筆記:數據框dataframe列反轉


一、需求

例如有一個數據框列名分別為:a、b、c、d,要求轉換為:d、c、b、a。

二、實操

  • 建立測試數據集
# 建立測試數據集
df = pd.DataFrame({'a':range(5),
                   'b':np.random.randn(5),
                   'c':np.random.randn(5),
                   'd':np.random.randn(5)
                   })
df
'''
   a      b      c      d
0  0 -1.470 -2.294 -0.012
1  1  0.709  1.100 -0.299
2  2  0.325  0.918  0.105
3  3 -0.679  0.822  1.488
4  4  1.120 -0.525  0.231
'''
  • 提取列名
# 提取列名
df_columns = df.columns.to_list() # ['a', 'b', 'c', 'd']

1.方法一

# 方法一:利用pop再insert
for i in range(df.shape[1]):
    # print(i)
    a = df_columns.pop(-1)
    b = df.pop(a)
    df.insert(i, a, b)
df
'''
       d      c      b  a
0 -0.012 -2.294 -1.470  0
1 -0.299  1.100  0.709  1
2  0.105  0.918  0.325  2
3  1.488  0.822 -0.679  3
4  0.231 -0.525  1.120  4
'''

2.方法二

# 方法二:直接反轉、重新生成一個新的df
df_columns = df.columns.to_list()
df_columns.reverse()
df[df_columns]
'''
       d      c      b  a
0  0.869  0.087 -1.149  0
1  1.757 -1.277 -1.347  1
2 -0.640  0.418  0.619  2
3 -0.433 -1.526 -1.861  3
4 -1.415  2.196  0.451  4
'''


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM