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。