如何更改DataFrame数据的列顺序?

26 浏览
0 Comments

如何更改DataFrame数据的列顺序?

我有以下的DataFramedf):

import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.rand(10, 5))

我通过赋值添加更多的列:

df['mean'] = df.mean(1)

如何将列mean移动到最前面,即设置为第一列,同时保持其他列的顺序不变?

admin 更改状态以发布 2023年5月22日
0
0 Comments

你也可以像这样做:

df = df[['mean', '0', '1', '2', '3']]

你可以使用以下命令获取列的列表:

cols = list(df.columns.values)

输出将产生:

['0', '1', '2', '3', 'mean']

...然后很容易手动重新排列,然后再将其放入第一个函数中

0
0 Comments

一个简单的方法是使用一列的列表重新分配数据帧,并按需要重新排列。

目前的情况是这样的:

In [6]: df
Out[6]:
          0         1         2         3         4      mean
0  0.445598  0.173835  0.343415  0.682252  0.582616  0.445543
1  0.881592  0.696942  0.702232  0.696724  0.373551  0.670208
2  0.662527  0.955193  0.131016  0.609548  0.804694  0.632596
3  0.260919  0.783467  0.593433  0.033426  0.512019  0.436653
4  0.131842  0.799367  0.182828  0.683330  0.019485  0.363371
5  0.498784  0.873495  0.383811  0.699289  0.480447  0.587165
6  0.388771  0.395757  0.745237  0.628406  0.784473  0.588529
7  0.147986  0.459451  0.310961  0.706435  0.100914  0.345149
8  0.394947  0.863494  0.585030  0.565944  0.356561  0.553195
9  0.689260  0.865243  0.136481  0.386582  0.730399  0.561593
In [7]: cols = df.columns.tolist()
In [8]: cols
Out[8]: [0L, 1L, 2L, 3L, 4L, 'mean']

按任何您想要的方式重新排列cols。这就是我如何将最后一个元素移动到第一个位置:

In [12]: cols = cols[-1:] + cols[:-1]
In [13]: cols
Out[13]: ['mean', 0L, 1L, 2L, 3L, 4L]

然后按照以下方式重新排序数据帧:

In [16]: df = df[cols]  #    OR    df = df.ix[:, cols]
In [17]: df
Out[17]:
       mean         0         1         2         3         4
0  0.445543  0.445598  0.173835  0.343415  0.682252  0.582616
1  0.670208  0.881592  0.696942  0.702232  0.696724  0.373551
2  0.632596  0.662527  0.955193  0.131016  0.609548  0.804694
3  0.436653  0.260919  0.783467  0.593433  0.033426  0.512019
4  0.363371  0.131842  0.799367  0.182828  0.683330  0.019485
5  0.587165  0.498784  0.873495  0.383811  0.699289  0.480447
6  0.588529  0.388771  0.395757  0.745237  0.628406  0.784473
7  0.345149  0.147986  0.459451  0.310961  0.706435  0.100914
8  0.553195  0.394947  0.863494  0.585030  0.565944  0.356561
9  0.561593  0.689260  0.865243  0.136481  0.386582  0.730399

0