更改 Pandas DataFrame 列的顺序
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 系列中获取列表
发布时间:2024/04/20 浏览次数:136 分类:Python
-
本文将讨论如何使用 tolist 方法从 Pandas DataFrame 系列中获取列表,并探索 Pandas DataFrame 结构。
创建一个空的 Pandas DataFrame 并用数据填充它
发布时间:2024/04/20 浏览次数:129 分类:Python
-
本文将演示如何创建一个空的 Pandas DataFrame 并通过附加行和列来填充数据的不同方法。
Pandas 中的 Join 和 Merge 有什么区别
发布时间:2024/04/20 浏览次数:59 分类:Python
-
本文将为我们介绍 pandas 中 join 和 merge 方法之间的区别。
Pandas 以表格样式显示 DataFrame
发布时间:2024/04/20 浏览次数:155 分类:Python
-
本教程演示了如何通过使用不同的方法(例如,使用显示函数、制表库和使用 dataframe.style)以表格样式显示 Pandas DataFrame。
Pandas 和 Seaborn 的 KDE 绘图可视化
发布时间:2024/04/20 浏览次数:191 分类:Python
-
本文演示了如何将 KDE 绘图可视化与 Pandas 和 Seaborn 一起使用。
Pandas DataFrame 中浅拷贝与深拷贝的区别
发布时间:2024/04/20 浏览次数:81 分类:Python
-
本教程介绍如何使用 Pandas DataFrame 来识别浅拷贝和深拷贝之间的区别。
Pandas DataFrame 尺寸
发布时间:2024/04/20 浏览次数:83 分类:Python
-
本教程解释了 python pandas 属性(例如 df.size、df.shape 和 df.ndim)的工作原理。