如何在Python中更改Pandas DataFrame的列顺序

2025年1月5日 | 阅读 4 分钟

Pandas 是一个强大且知名的 Python 数据操作和分析工具。在处理数据时,一种常见的操作是重新排列 DataFrame 的列。这可能是出于多种原因,包括准备用于演示的数据、确保与其他框架的互操作性,或者仅仅是为了使数据更易于理解和分析。在本文中,我们将探讨在 Pandas DataFrame 中重新排序列的各种方法,并提供广泛的示例来帮助您掌握此任务。

更改 Pandas DataFrame 中的列顺序

有许多方法可以重新排序 Pandas DataFrame 中的列,每种方法都有其优点和最适合的场景。在这里,我们将探讨五种常用技术的理论和用法。

  1. 要指定新的列顺序,
  2. 使用 '.reindex()' 方法。
  3. 使用 '.loc[]' 索引器,
  4. 使用 '.insert()' 方法进行重新排序
  5. 使用 '.sort_index()' 方法。

1. 直接指定新的列顺序

此方法涉及生成所需顺序的列名列表,并将 DataFrame 重新分配到此新顺序。它简单易懂。

直接指定方法包括明确定义新的列顺序。Pandas DataFrame 支持通过标签访问列。因此,您可以通过将 DataFrame 重新分配到新顺序列表来重新排列它们。

代码

输出

 
     D1  B1  A1  C1
0   10    4    1     7
1   11    5    2     8
2   12    6    3     9   

2. 使用 '.reindex()' 方法

您可以通过传递新的列列表来使用 .reindex() 方法修改列的顺序。此技术提供了更多的灵活性和管理缺失列的选项。

Pandas 的 '.reindex()' 方法根据指定的列表重新分配 DataFrame 的列。它可以处理缺失的列,方法是将它们替换为 NaN 值或完全排除它们,使其成为一个通用的选项。

代码

输出

 
     D1  B1  A1  C1
0   10    4     1     7
1   11    5     2     8
2   12    6     3     9   

3. 利用 '.loc[]' 索引器

'.loc[]' 索引器允许您通过在索引器内提供适当的顺序来选择和重新排序列。

Pandas 中的 '.loc[]' 索引器是一个基于标签的索引器,用于选择行和列。通过将列列表提供给 .loc[],您可以快速重新排列 DataFrame 的列。

代码

输出

 
     D1  B1  A1  C1
0   10    4    1     7
1   11    5    2     8
2   12    6    3     9   

4. 利用 .insert() 方法进行重新排序

'.insert()' 技术对于将单个列移动到不同位置很有用。此过程需要从其当前位置删除该列,并将其插入到适当的索引处。

Pandas 的 '.insert()' 方法允许您在精确位置插入列。您可以通过从原始位置删除并重新插入它们来逐一更改 DataFrame 的列。

代码

输出

 
    C1  A1  B1
0   7    1     4
1   8    2     5
2   9    3     6   

5. 使用 .sort_index() 方法

'.sort_index()' 方法根据列标签对列进行排序。如果您想按字母顺序或数字顺序对列进行排序,它很有用。

Pandas 的 '.sort_index()' 方法按索引标签对 DataFrame 的列进行排序。它特别有助于按字母顺序或数字顺序组织列,而无需手动选择顺序。

代码

输出

 
    A1  B1  C1
0   1    4     7
1   2    5     8
2   3    6     9   

重新排序 Pandas DataFrame 中的列是一项基本任务,可以提高数据的可读性、互操作性和呈现效果。通过掌握直接指定、'.reindex()'、'.loc[]'、'.insert()' 和 '.sort_index()' 等技术,您可以有效地管理和组织数据以满足各种需求。每种方法都提供了不同的偏好和适应性,允许您根据您的特定需求选择最佳选项。理解和采用这些程序将使您能够更有效地处理数据,简化信息处理活动,并确保您的 DataFrame 结构良好,适合分析和演示。无论您是为报告准备数据、将其与外部框架集成,还是仅仅使其更易于处理,重新排序列都是您数据操作工具包中的一项基本技能。