如何在 Pandas DataFrame 中创建一个空列
- 通过简单的分配创建 Pandas 空的列
-
在 Pandas 中用
pandas.DataFrame.reindex()
方法添加一个空列 -
pandas.DataFrame.assign()
在 Pandas DataFrame 中添加一个空列 -
pandas.DataFrame.insert()
将空列添加到 DataFrame
![如何在 Pandas DataFrame 中创建一个空列](/img/Python-Pandas/feature-image---How-to-create-an-empty-column-in-Pandas-DataFrame.webp)
我们可以使用 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_1
,Empty_2
,Empty_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_1
,Empty_2
和 Empty_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_1
和 Empty_2
的空列,仅在 df
中包含 NaN 值。
pandas.DataFrame.insert()
将空列添加到 DataFrame
pandas.DataFrame.insert()
允许我们在 DataFrame 中插入列指定位置。我们可以使用此方法向 DataFrame
添加一个空列。
语法:
DataFrame.insert(loc, column, value, allow_duplicates=False)
它在位置 loc
处创建一个名称为 column
的新列,默认值为 value
。allow_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 is a backend software engineer at Matrice.ai.
LinkedIn相关文章 - Pandas DataFrame Column
- 如何将 Pandas DataFrame 列标题获取为列表
- 如何删除 Pandas DataFrame 列
- 如何在 Pandas 中将 DataFrame 列转换为日期时间
- 如何获得 Pandas 列中元素总和
- 如何更改 Panas DataFrame 列的顺序
- 如何在 Pandas 中将 DataFrame 列转换为字符串