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