当前位置: 首页 > 知识库问答 >
问题:

如何更改DataFrame列的顺序?

吕霄
2023-03-14

我有以下dataframe(df):

import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.rand(10, 5))

我按分配添加更多列:

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

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

共有2个答案

蔚琦
2023-03-14

您还可以执行以下操作:

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

您可以使用以下方法获取列列表:

cols = list(df.columns.values)

输出将产生:

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

...在将其放入第一个函数之前,可以轻松地手动重新排列

方璞
2023-03-14

一个简单的方法是用列的列表重新分配dataframe,根据需要重新排列。

这就是你现在拥有的:

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]

然后像这样重新排序dataframe:

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
 类似资料:
  • 问题内容: 我有以下: 我通过分配添加了更多列: 如何将列mean移到最前面,即将其设置为第一列,而其他列的顺序保持不变? 问题答案: 你还可以执行以下操作: 你可以通过以下方式获取列列表: 输出将产生: …然后轻松将其放到第一个功能中即可手动重新排列

  • 本文向大家介绍如何更改 pandas dataframe 中两列的位置,包括了如何更改 pandas dataframe 中两列的位置的使用技巧和注意事项,需要的朋友参考一下 如何更改 pandas dataframe 中两列的位置: 把其中的某列移到第一列的位置。 原来的 df 是: 要将 Mid 这一列移动到第一列? 解决办法:(使用 ix ) 法一: 法二: 最终的处理结果: 以上这篇如何更

  • 我正在为客户编辑时事通讯,我一直被困在这个。。。 这是我的桌子的例子 https://jsfiddle.net/xocrqwLs/ 问题是移动设备看起来像这样 我想让它看起来像这样 如何更改移动设备的表列? 谢谢你!

  • 我有一堆CSV文件,它们是作为数据流读取的。对于每个dataframe,我希望更改一些列名,如果某个dataframe中存在特定列: column_name_update_map={'aa':'xx';'bb':'yy'}

  • 我试图改变列或处理列,我得到一些keyError错误。致力于芝加哥犯罪数据分析。 例如,当我试图跑步时 关键错误 完整代码: 这就是错误: 2896尝试:- pandas/_libs/index.pyx在pandas中。_libs.index.IndexEngine.get_loc() pandas/_libs/index.pyx在pandas中。_libs.index.IndexEngine.g

  • 是否可以使用列表中的数据更改列名? 我有我的新标签如下: 是否可以使用上述列表中的数据更改名称?我的原始数据集有100列,我不想为每列手动执行此操作。 我尝试使用df.rename执行以下操作,但不断出现错误。谢谢