DataFrame的列有时我们需要对添加的列或原来的列进行交换顺序。
data = pd.DataFrame(np.arange(16).reshape(4,4),columns=list('abcd'))
In [88]: data
Out[88]:
a b c d
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
3 12 13 14 15
一:获取DataFrame列标签
cols = list(data)
In [94]: cols
Out[94]: ['a', 'b', 'c', 'd']
二:改变列标签为指定顺序
cols.insert(0,cols.pop(cols.index('c')))
insert方法:1.功能
insert()函数用于将指定对象插入列表的指定位置。
2.语法
list.insert(index, obj)
3.参数
index: 对象obj需要插入的索引位置。
obj: 插入列表中的对象。
In [97]: cols
Out[97]: ['c', 'a', 'b', 'd']
三:利用loc获取新的DataFrame,拷贝交换顺序后的DataFrame
data = data.loc[:,cols]
In [100]: data
Out[100]:
c a b d
0 2 0 1 3
1 6 4 5 7
2 10 8 9 11
3 14 12 13 15
loc前面文章有介绍
data.loc[:,cols]的操作过程就是:获取所有的行,按照cols列表来依次取原data的列,得到新的DataFrame赋给新的变量data。
这就是完整的交换过程。
当然也可以加入新的列,然后新获得的DataFrame再交换列顺序。就可以将你新加入的列交换位置。