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