迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

更改 Pandas DataFrame 列的顺序

作者:迹忆客 最近更新:2024/04/20 浏览次数:

Pandas DataFrame 是二维数据结构,以行和列的形式存储信息。


使用 reindex() 函数更改 Python Pandas Dataframe 列的顺序

pandas 中的 reindex() 函数可用于重新排序或重新排列 DataFrame 的列。我们将以所需的顺序创建一个新的列列表,然后使用 data= data[cols] 以这个新顺序重新排列列。

首先,我们需要导入 python 库 numpy 和 pandas。然后声明一个变量 data,我们在其中使用 np.random.rand(10, 5) 函数创建一个 5 列和 10 行的 DataFrame。

此函数创建随机值以使 DataFrame 具有以下 DataFrame:

import pandas as pd
import numpy as np

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

输出:

        0	       1	        2	        3	       4
0	0.277764	0.778528	0.443376	0.838117	0.256161
1	0.986206	0.647985	0.061442	0.703383	0.415676
2	0.963891	0.477693	0.558834	0.616453	0.842086
3	0.746559	0.180196	0.038300	0.391343	0.877589
4	0.554592	0.958017	0.286683	0.526546	0.185318
5	0.370137	0.751773	0.594891	0.570358	0.779640
6	0.795137	0.271263	0.742291	0.615652	0.728313
7	0.912602	0.254319	0.455149	0.241939	0.250034
8	0.125905	0.300788	0.767852	0.265875	0.599287
9	0.400207	0.516693	0.345934	0.691878	0.088651

通过分配,添加另一列:使用以下代码,因此该列计算上面创建的 DataFrame 的 mean 值。

data["mean"] = data.mean(1)
data

输出:

上面的输出显示了第 6 列的平均值。我们如何将列均值移到前面,即,使其成为第一列,同时保持其他列的原始顺序?

一种直接的解决方案是使用列列表重新分配 DataFrame,然后可以根据需要对其进行重构。columns.tolist() 函数在列表中列出列的名称。

columns_name = data.columns.tolist()
columns_names

输出:

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

根据需要重新排列 cols。这就是我们如何让最后一个元素到达顶部:

columns = columns_name[-1:] + columns_name[:-1]
columns

输出:

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

上面的输出显示平均列移动到第一个。同样,我们更改索引值以首先更改没有 4 个位置的列。

columns = columns_name[-2:] + columns_name[:-3]
columns

输出:

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

如你所见,第 4 列移动到第 1 列和第 1 列,这意味着移动到第 2 位置。这就是我们改变列顺序的方式。

现在我们使用 reindex() 函数对 python DataFrame 的列进行重新排序。你还可以使用列名列表并将该列表传递给 reindex() 方法,如下所示。

使用 reindex() 函数重新排序。reindex() 方法将列作为列表接受。

带有列名的单个大括号用于按名称更改列顺序。

column_names = [0, 2, 3, 1, 4, "mean"]
data = data.reindex(columns=column_names)
data

输出:

         0	         2	       3	        1	        4	       mean
0	0.277764	0.443376	0.838117	0.778528	0.256161	0.518789
1	0.986206	0.061442	0.703383	0.647985	0.415676	0.562938
2	0.963891	0.558834	0.616453	0.477693	0.842086	0.691791
3	0.746559	0.038300	0.391343	0.180196	0.877589	0.446797
4	0.554592	0.286683	0.526546	0.958017	0.185318	0.502231
5	0.370137	0.594891	0.570358	0.751773	0.779640	0.613360
6	0.795137	0.742291	0.615652	0.271263	0.728313	0.630531
7	0.912602	0.455149	0.241939	0.254319	0.250034	0.422809
8	0.125905	0.767852	0.265875	0.300788	0.599287	0.411942
9	0.400207	0.345934	0.691878	0.516693	0.088651	0.408673

上面的输出显示你可以通过使用列名索引 DataFrame 并创建新 DataFrame 来重新排列列。

然后按索引名称按索引值使用 reindex()。对索引名称使用双括号。

data = data[[1, 0, 2, 3, 4, "mean"]]
data

输出:

        1	        0	        2	        3	       4	      mean
0	0.778528	0.277764	0.443376	0.838117	0.256161	0.518789
1	0.647985	0.986206	0.061442	0.703383	0.415676	0.562938
2	0.477693	0.963891	0.558834	0.616453	0.842086	0.691791
3	0.180196	0.746559	0.038300	0.391343	0.877589	0.446797
4	0.958017	0.554592	0.286683	0.526546	0.185318	0.502231
5	0.751773	0.370137	0.594891	0.570358	0.779640	0.613360
6	0.271263	0.795137	0.742291	0.615652	0.728313	0.630531
7	0.254319	0.912602	0.455149	0.241939	0.250034	0.422809
8	0.300788	0.125905	0.767852	0.265875	0.599287	0.411942
9	0.516693	0.400207	0.345934	0.691878	0.088651	0.408673

结论

我们已经知道如何使用 reindex() 方法和 DataFrame 索引对 DataFrame 列重新排序,并按字母顺序按升序或降序对列进行排序。

此外,我们还发现了如何将列移动到第一个、最后一个或特定位置。这些操作可以在 pandas DataFrame 中用于执行各种数据操作操作。

上一篇:从 Pandas DataFrame 系列中获取列表

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Pandas 以表格样式显示 DataFrame

发布时间:2024/04/20 浏览次数:155 分类:Python

本教程演示了如何通过使用不同的方法(例如,使用显示函数、制表库和使用 dataframe.style)以表格样式显示 Pandas DataFrame。

Pandas DataFrame 尺寸

发布时间:2024/04/20 浏览次数:83 分类:Python

本教程解释了 python pandas 属性(例如 df.size、df.shape 和 df.ndim)的工作原理。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便