DataFrame交换列的顺序

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再交换列顺序。就可以将你新加入的列交换位置。



  • 21
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值