HOWTO · Pandas

將空列新增到 Pandas DataFrame

本教程解釋瞭如何使用各種方法在 Pandas DataFrame 中新增一列或多列,例如使用賦值運算子,以及使用 assign()、insert()、reindex() 和 apply() 方法。

本頁內容

Pandas 還提供了一項功能,可以將一個或多個空列新增到 DataFrame(表)。我們可以通過多種方式輕鬆地在 Pandas DataFrame 中新增空列。

我們將在本教程中展示如何使用各種方法在 Pandas DataFrame 中新增一個或多個空列,例如使用 assignment operator 和使用 assign(), insert(), reindex() 和 apply() 方法。我們還將展示每種方法的實現,以簡要說明每種方法的工作原理。

使用 賦值運算子 在 Pandas DataFrame 中新增空列

使用 賦值運算子 或 空字串,我們可以在 Pandas DataFrame 中新增空列。使用這種方法,將空值或 NaN 值分配給 DataFrame 中的任何列。

在下面的示例中,我們建立了一個 DataFrame,然後使用 assignment operator,我們將空字串和 NaN 值分配給兩個新新增的列,就像 Pandas DataFrame 中一樣。這些列是地址和名稱。使用 NumPy 庫,我們將把 NaN 值匯入到 DataFrame 列中。

讓我們看看如何使用 賦值運算子 或 空字串 將空列新增到 Pandas 中的 DataFrame。

示例程式碼:

import pandas as pd
import numpy as np

company_data = {
    "Employee Name": ["Samreena", "Mirha", "Asif", "Raees"],
    "Employee ID": [101, 102, 103, 104],
}
dataframe = pd.DataFrame(company_data)
print("------------ Original DataFrame --------------\n", dataframe)

# Add empty column using Assignment operator
dataframe["Blank_Column"] = " "
dataframe["Address"] = np.nan
dataframe["Designation"] = None
print("------------ After Adding Empty Columns ---------------\n", dataframe)

輸出:

------------ Original DataFrame --------------
   Employee Name  Employee ID
0      Samreena          101
1         Mirha          102
2          Asif          103
3         Raees          104
------------ After Adding Empty Columns ---------------
   Employee Name  Employee ID Designation  Address
0      Samreena          101                  NaN
1         Mirha          102                  NaN
2          Asif          103                  NaN
3         Raees          104                  NaN

使用 DataFrame.assign() 方法在 Pandas DataFrame 中新增一個空列

DataFrame.assign() 方法用於向 DataFrame 新增一列或多列。在現有 Pandas DataFrame 中新增新的空列後,在 DataFrame 上應用 assign() 方法會返回一個新的 DataFrame。

示例程式碼:

import pandas as pd
import numpy as np

company_data = {
    "Employee Name": ["Samreena", "Mirha", "Asif", "Raees"],
    "Employee ID": [101, 102, 103, 104],
}
dataframe1 = pd.DataFrame(company_data)
print("------------ Original DataFrame --------------\n", dataframe1)

# Add empty column into the DataFrame using assign() method
dataframe2 = dataframe1.assign(Designation=" ", Empty_column=np.nan, Address=None)
print("------------ After Adding Empty Columns ---------------\n", dataframe2)

輸出:

------------ Original DataFrame --------------
   Employee Name  Employee ID
0      Samreena          101
1         Mirha          102
2          Asif          103
3         Raees          104
------------ After Adding Empty Columns ---------------
   Employee Name  Employee ID Designation  Empty_column Address
0      Samreena          101                       NaN    None
1         Mirha          102                       NaN    None
2          Asif          103                       NaN    None
3         Raees          104                       NaN    None

使用 DataFrame.reindex() 方法在 Pandas DataFrame 中新增一個空列

DataFrame.reindex() 方法將 NaN 值分配給 Pandas DataFrame 中的空列。這個 reindex() 方法獲取現有和新新增的列的列表。使用這種方法,我們可以將任何索引位置的空列新增到 DataFrame。

在以下示例中,我們建立了一個新的 DataFrame,其中包含兩列名稱,分別為 Employee Name 和 Employee ID。後來,我們使用 dataframe.reindex() 方法將另外兩個新列 Address 和 Designation 新增到具有指定 NaN 值的列列表中。

示例程式碼:

import pandas as pd
import numpy as np

company_data = {
    "Employee Name": ["Samreena", "Mirha", "Asif", "Raees"],
    "Employee ID": [101, 102, 103, 104],
}
dataframe1 = pd.DataFrame(company_data)
print("------------ Original DataFrame --------------\n", dataframe1)

# Pandas Add empty columns to the DataFrame using reindex() method
dataframe2 = dataframe1.reindex(
    columns=dataframe1.columns.tolist() + ["Designation", "Address"]
)
print("------------ After Adding Empty Columns ---------------\n", dataframe2)

輸出:

------------ Original DataFrame --------------
   Employee Name  Employee ID
0      Samreena          101
1         Mirha          102
2          Asif          103
3         Raees          104
------------ After Adding Empty Columns ---------------
   Employee Name  Employee ID  Designation  Address
0      Samreena          101          NaN      NaN
1         Mirha          102          NaN      NaN
2          Asif          103          NaN      NaN
3         Raees          104          NaN      NaN

使用 DataFrame.insert() 方法在 Pandas DataFrame 中新增一個空列

DataFrame.insert() 方法在 Pandas DataFrame 的任何索引位置(開始、中間、結束或指定位置)插入一個空列。

示例程式碼:

import pandas as pd
import numpy as np

company_data = {
    "Employee Name": ["Samreena", "Mirha", "Asif", "Raees"],
    "Employee ID": [101, 102, 103, 104],
}
dataframe = pd.DataFrame(company_data)
print("------------ Original DataFrame --------------\n", dataframe)

# Pandas Add empty columns to the DataFrame using insert() method
dataframe.insert(1, "Designation", "")
print("------------ After Adding Empty Columns ---------------\n", dataframe)

輸出:

------------ Original DataFrame --------------
   Employee Name  Employee ID
0      Samreena          101
1         Mirha          102
2          Asif          103
3         Raees          104
------------ After Adding Empty Columns ---------------
   Employee Name Designation  Employee ID
0      Samreena                      101
1         Mirha                      102
2          Asif                      103
3         Raees                      104

使用 DataFrame.apply() 方法在 Pandas DataFrame 中新增一個空列

使用 DataFrame.apply() 方法 和 Lambda 函式,我們還可以向 Pandas DataFrame 新增空列。請參閱以下示例,使用 DataFrame.apply() 方法將空列新增到 Pandas 中的 DataFrame。

示例程式碼:

import pandas as pd
import numpy as np

company_data = {
    "Employee Name": ["Samreena", "Mirha", "Asif", "Raees"],
    "Employee ID": [101, 102, 103, 104],
}
dataframe = pd.DataFrame(company_data)
print("------------ Original DataFrame --------------\n", dataframe)
# Pandas Add empty columns to the DataFrame using apply() method
dataframe["Empty_column"] = dataframe.apply(lambda _: " ", axis=1)
print("------------ After Adding Empty Columns ---------------\n", dataframe)

輸出:

------------ Original DataFrame --------------
   Employee Name  Employee ID
0      Samreena          101
1         Mirha          102
2          Asif          103
3         Raees          104
------------ After Adding Empty Columns ---------------
   Employee Name  Employee ID Empty_column
0      Samreena          101             
1         Mirha          102             
2          Asif          103             
3         Raees          104    

まとめ

在本教程中,我們介紹了不同的方法,例如 assign()、insert()、apply() 和 reindex() 以在 Pandas DataFrame 中新增一個或多個空列。我們還展示瞭如何使用 賦值運算子 將空列新增到 DataFrame。