将新列添加到 Python Pandas 中的现有 DataFrame

Ahmed Waheed 2023年1月30日 2020年6月9日
  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