更改DataFrame列顺序

网友投稿 296 2022-07-29

使用pandas进行数据分析的时候,有时会由于各种需求添加了一些列。可是列的顺序并不能符合自己的期望。这个时候就需要对于列的顺序进行调整。

显示的数据内容为:

1

2

3

4

          0         1         2         3         4      mean

0  0.320500  0.200182  0.910904  0.037071  0.596277  0.405417

1  0.212709  0.285527  0.329076  0.129344  0.126926  0.403962

2  0.683041  0.726176  0.030683  0.259034  0.883049  0.423555

其实想调整为:(将最后一列,放到第一列)

1

2

3

4

       mean         0         1         2         3         4

0  0.463490  0.360264  0.687535  0.541793  0.453763  0.262976

1  0.615846  0.795119  0.570023  0.293943  0.113567  0.697966

2  0.548002  0.235088  0.589980  0.808269  0.787805  0.683487

调整列顺序的代码为:

1

2

3

4

5

6

cols = df.columns.tolist()

# 更改列顺序方法1:

# cols = cols[-1:] + cols[:-1]

# 更改列顺序方法2: 这种可以指定位置进行插入,指定位置删除。其实就是list顺序调整方式

cols.insert(0, cols.pop(-1))

df = df[cols] #or df = df.reindex(columns=cols) #有的帖子中说也可以使用 df = df.ix[:, cols],其实这个方法已经废弃了
print(df)

如果使用df = df.ix[:, cols]更改列顺序,会收到报错信息。内容为:AttributeError: 'DataFrame' object has no attribute 'ix' 。

当然解决问题的方式会有多重多样,比如:

# 方法1:

df = df[['mean'] + [col for col in df.columns if col != 'mean']]

print(df)

#方法2:

col = df.pop("mean")

df.insert(0, col.name, col)

print(df)

#方法3:

df.set_index(df.columns[-1], inplace=True)

df.reset_index(inplace=True)

print(df)

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:股票交易数据采集+数据可视化(一个朴素无华的Python爬虫+可视化案例,附代全
下一篇:excel数据处理一:巧妙使用openpyxl提取、筛选数据(openpyxl读取excel数据)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~