HOWTO · Pandas

在 Pandas DataFrame 中将列移到前面

本教程演示如何在 Pandas DataFrame 中将列移到前面。

本页内容

Python 有一个名为 Pandas 的数据分析库。我们可以在 Python 中使用 Pandas 对 DataFrame 执行许多不同类型的操作。

本指南将解释重新排序 pandas DataFrame 中的列以使其移到前面的方法。

在 Pandas DataFrame 中将一列移到最前面

假设我们要重新排列 DataFrame 中列的位置。Pandas 提供了 insert() 和 reindex() 方法,它们将单列移动到 Pandas DataFrame 的前面。

使用 pop() 和 insert() 方法

这个想法是使用 pop() 方法删除我们想要移动到前面的列。然后通过指定要插入的位置,使用 insert() 方法将该列再次插入到 DataFrame 中。

在下面的代码中,我们有一个由学生记录组成的 DataFrame。我们的目标是将名称列移到前面。

首先,我们将使用 pop() 方法将其删除,pop() 方法将我们要删除的列标签作为参数并返回它。我们将返回的列存储在 col 中。

通过 insert() 方法,我们通过将列的位置定义为 loc=0(第一列位置)、列名和实际列)将列推回 DataFrame。

示例代码:

# Python 3.x
import pandas as pd

student = {
    "Course": ["Java", "Python", "C++", "Dart"],
    "Marks": [70, 80, 90, 60],
    "Age": [19, 20, 21, 19],
    "Name": ["Jhon", "Aliya", "Nate", "Amber"],
}
df = pd.DataFrame(student)
print(df)
col = df.pop("Name")
df.insert(loc=0, column="Name", value=col)
print(df)

输出:

$python3 Main.py

   Course  Marks  Age   Name
0    Java     70   19   Jhon
1  Python     80   20  Aliya
2     C++     90   21   Nate
3    Dart     60   19  Amber
    Name  Course  Marks  Age
0   Jhon    Java     70   19
1  Aliya  Python     80   20
2   Nate     C++     90   21
3  Amber    Dart     60   19

使用 reindex() 方法

我们可以通过重新索引它们来重新排列列。reindex() 方法对列进行重新排序。

该方法在 pandas.DataFrame 模块中可用。我们将按照我们想要的顺序提供列名列表,并将 list 和 DataFrame 传递给 reindex() 方法以返回更新的 DataFrame。

示例代码:

# Python 3.x
import pandas as pd

student = {
    "Course": ["Java", "Python", "C++", "Dart"],
    "Marks": [70, 80, 90, 60],
    "Age": [19, 20, 21, 19],
    "Name": ["Jhon", "Aliya", "Nate", "Amber"],
}
df = pd.DataFrame(student)
print(df)
df = pd.DataFrame.reindex(df, columns=["Name", "Course", "Marks", "Age"])
print(df)

输出:

$python3 Main.py

   Course  Marks  Age   Name
0    Java     70   19   Jhon
1  Python     80   20  Aliya
2     C++     90   21   Nate
3    Dart     60   19  Amber
    Name  Course  Marks  Age
0   Jhon    Java     70   19
1  Aliya  Python     80   20
2   Nate     C++     90   21
3  Amber    Dart     60   19