如何在 Pandas DataFrame 中建立一個空列

Suraj Joshi 2023年1月30日 2020年6月13日 Pandas Pandas DataFrame Column Pandas DataFrame
  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

Author: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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 列轉換為字串
  • 相關文章 - Pandas DataFrame

  • 如何將 Pandas DataFrame 列標題獲取為列表
  • 如何刪除 Pandas DataFrame 列
  • 如何在 Pandas 中將 DataFrame 列轉換為日期時間
  • 如何在 Pandas DataFrame 中將浮點數轉換為整數
  • 如何按一列的值對 Pandas DataFrame 進行排序
  • 如何用 group-by 和 sum 獲得 Pandas 總和