將新列新增到 Python Pandas 中的現有 DataFrame

Ahmed Waheed 2023年1月30日
  1. 在 Pandas 中 [] 運算子方法新增新列
  2. 在 Pandas 中 df.insert() 方法可新增新列
  3. 在 Pandas 中 df.assign() 方法可新增新列
  4. 在 Pandas 中 df.loc() 方法新增新列
將新列新增到 Python Pandas 中的現有 DataFrame

使用大型資料集時,經常會向現有 DataFrame 新增新列。例如,現有的 DataFrame 具有 FirstLastAge 列,我們需要為其新增新的列 city。下面列出了完成此任務的不同方法。

  1. [] 運算子方法
  2. df.insert() 方法
  3. df.assign() 方法
  4. df.loc() 方法

在以下各節中,我們將使用相同的 DataFrame,如下所示:

import pandas as pd

data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])
print(df)

輸出:

     First      Last Age
0      Ali     Azmat  30
1  Sharukh      Khan  40
2    Linus  Torvalds  70

在 Pandas 中 [] 運算子方法新增新列

我們可以使用 [] 運算子向現有 DataFrame 新增新列。

import pandas as pd

data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])
city = ["Lahore", "Dehli", "New York"]
df["city"] = city
print(df)

輸出:

     First      Last Age      city
0      Ali     Azmat  30    Lahore
1  Sharukh      Khan  40     Dehli
2    Linus  Torvalds  70  New York

在 Pandas 中 df.insert() 方法可新增新列

如果要在特定索引處新增新列,則可以使用 df.insert() 函式。df.insert() 函式的第一個引數是從零開始的插入索引。

import pandas as pd

data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])
df.insert(3, "city", ["Lahore", "Dehli", "New York"], True)
print(df)

輸出:

     First      Last Age      city
0      Ali     Azmat  30    Lahore
1  Sharukh      Khan  40     Dehli
2    Linus  Torvalds  70  New York

在 Pandas 中 df.assign() 方法可新增新列

df.assign() 也可用於向現有 DataFrame 新增新列。

import pandas as pd

data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])

df = df.assign(city=["Lahore", "Dehli", "New York"])
print(df)

輸出:

     First      Last Age      city
0      Ali     Azmat  30    Lahore
1  Sharukh      Khan  40     Dehli
2    Linus  Torvalds  70  New York

讓我們看看如何使用 df.assign() 新增多列。下面的示例將新增 cityscore 列。

import pandas as pd

data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])

df = df.assign(city=["Lahore", "Dehli", "New York"], score=[20, 30, 40])
print(df)

輸出:

     First      Last Age      city  score
0      Ali     Azmat  30    Lahore     20
1  Sharukh      Khan  40     Dehli     30
2    Linus  Torvalds  70  New York     40

在 Pandas 中 df.loc() 方法新增新列

df.loc() 方法還可以將新列新增到現有 DataFrame 中。

import pandas as pd

data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])
df.loc[:, "city"] = ["Lahore", "Dehli", "New York"]
print(df)

輸出:

     First      Last Age      city
0      Ali     Azmat  30    Lahore
1  Sharukh      Khan  40     Dehli
2    Linus  Torvalds  70  New York