如何在 Pandas DataFrame 中创建一个空列

Suraj Joshi 2023年1月30日
  1. 通过简单的分配创建 Pandas 空的列
  2. 在 Pandas 中用 pandas.DataFrame.reindex() 方法添加一个空列
  3. pandas.DataFrame.assign() 在 Pandas DataFrame 中添加一个空列
  4. pandas.DataFrame.insert() 将空列添加到 DataFrame
如何在 Pandas DataFrame 中创建一个空列

我们可以使用 DataFrame 对象的 reindex()assign()insert() 方法在 Pandas 中向 DataFrame 添加一个空列。我们还可以直接为 DataFrame 的列分配一个空值,以在 Pandas 中创建一个空列。

通过简单的分配创建 Pandas 空的列

我们可以直接将 DataFrame 的列分配给空字符串,NaN 值或空 Pandas Series,以在 Pandas 中创建一个空列。

import pandas as pd
import numpy as np

dates = ["April-20", "April-21", "April-22", "April-23", "April-24", "April-25"]
income = [10, 20, 10, 15, 10, 12]
expenses = [3, 8, 4, 5, 6, 10]

df = pd.DataFrame({"Date": dates, "Income": income, "Expenses": expenses})

df["Empty_1"] = ""
df["Empty_2"] = np.nan
df["Empty_3"] = pd.Series()

print(df)

输出:

       Date  Income  Expenses Empty_1  Empty_2  Empty_3
0  April-20      10         3              NaN      NaN
1  April-21      20         8              NaN      NaN
2  April-22      10         4              NaN      NaN
3  April-23      15         5              NaN      NaN
4  April-24      10         6              NaN      NaN
5  April-25      12        10              NaN      NaN

它在 df 中创建三个空列。为 Empty_1 列分配空字符串,为 Empty_2 分配 NaN 值,为 Empty_3 分配一个空 Pandas Series,这也将导致整个 Empty_3 的值为 NaN。

在 Pandas 中用 pandas.DataFrame.reindex() 方法添加一个空列

我们可以使用 pandas.DataFrame.reindex() 方法向 Pandas 中的 DataFrame 添加多个空列。

import pandas as pd
import numpy as np

dates = ["April-20", "April-21", "April-22", "April-23", "April-24", "April-25"]
income = [10, 20, 10, 15, 10, 12]
expenses = [3, 8, 4, 5, 6, 10]

df = pd.DataFrame({"Date": dates, "Income": income, "Expenses": expenses})

column_names = ["Empty_1", "Empty_2", "Empty_3"]

df = df.reindex(columns=column_names)
print(df)

输出:

   Empty_1  Empty_2  Empty_3
0      NaN      NaN      NaN
1      NaN      NaN      NaN
2      NaN      NaN      NaN
3      NaN      NaN      NaN
4      NaN      NaN      NaN
5      NaN      NaN      NaN

该代码在 df 中使用所有 NaN 值创建了新列 Empty_1Empty_2Empty_3,而所有旧信息都丢失了。

要在保留初始列的同时添加多个新列,我们可以编写如下代码:

import pandas as pd
import numpy as np

dates = ["April-20", "April-21", "April-22", "April-23", "April-24", "April-25"]
income = [10, 20, 10, 15, 10, 12]
expenses = [3, 8, 4, 5, 6, 10]

df = pd.DataFrame({"Date": dates, "Income": income, "Expenses": expenses})

df = df.reindex(columns=df.columns.tolist() + ["Empty_1", "Empty_2", "Empty_3"])
print(df)

输出:

       Date  Income  Expenses  Empty_1  Empty_2  Empty_3
0  April-20      10         3      NaN      NaN      NaN
1  April-21      20         8      NaN      NaN      NaN
2  April-22      10         4      NaN      NaN      NaN
3  April-23      15         5      NaN      NaN      NaN
4  April-24      10         6      NaN      NaN      NaN
5  April-25      12        10      NaN      NaN      NaN

这样会在保留初始信息的情况下向 df 添加空列 Empty_1Empty_2Empty_3

pandas.DataFrame.assign() 在 Pandas DataFrame 中添加一个空列

我们可以使用 pandas.DataFrame.assign() 方法向其中 Pandas 中的 DataFrame 添加一个空列。

import pandas as pd
import numpy as np

dates = ["April-20", "April-21", "April-22", "April-23", "April-24", "April-25"]
income = [10, 20, 10, 15, 10, 12]
expenses = [3, 8, 4, 5, 6, 10]

df = pd.DataFrame({"Date": dates, "Income": income, "Expenses": expenses})

df = df.assign(Empty_1="", Empty_2=np.nan)
print(df)

输出:

       Date  Income  Expenses Empty_1  Empty_2
0  April-20      10         3              NaN
1  April-21      20         8              NaN
2  April-22      10         4              NaN
3  April-23      15         5              NaN
4  April-24      10         6              NaN
5  April-25      12        10              NaN

它将创建一个名为 Empty_1Empty_2 的空列,仅在 df 中包含 NaN 值。

pandas.DataFrame.insert() 将空列添加到 DataFrame

pandas.DataFrame.insert() 允许我们在 DataFrame 中插入列指定位置。我们可以使用此方法向 DataFrame 添加一个空列。

语法:

DataFrame.insert(loc, column, value, allow_duplicates=False)

它在位置 loc 处创建一个名称为 column 的新列,默认值为 valueallow_duplicates = False 确保 DataFrame 中只有一列名为 column 的列。如果我们传递一个空字符串或 NaN 值作为值参数,则可以向 DataFrame 添加一个空列。

import pandas as pd
import numpy as np

dates = ["April-20", "April-21", "April-22", "April-23", "April-24", "April-25"]
income = [10, 20, 10, 15, 10, 12]
expenses = [3, 8, 4, 5, 6, 10]

df = pd.DataFrame({"Date": dates, "Income": income, "Expenses": expenses})
df.insert(3, "Empty_1", "")
df.insert(4, "Empty_2", np.nan)
print(df)

输出:

       Date  Income  Expenses Empty_1  Empty_2
0  April-20      10         3              NaN
1  April-21      20         8              NaN
2  April-22      10         4              NaN
3  April-23      15         5              NaN
4  April-24      10         6              NaN
5  April-25      12        10              NaN

它在 df 中创建 Empty_1 列,并在索引 3 处创建所有空值,并在索引 4 处创建具有所有 NaN 值的 Empty_2

作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

相关文章 - Pandas DataFrame Column

相关文章 - Pandas DataFrame