在Python的Pandas中向现有数据帧添加新列

在Python的Pandas中向现有数据帧添加新列

在本教程中,我们将学习如何在pandas中向现有数据帧中添加新列。我们可以有不同的方法来添加新列。让我们看看它们吧。

使用列表

我们可以使用列表添加一个新列。按照以下步骤添加一个新列。

算法

  1. 使用字典创建数据帧。
  2. 创建一个包含新列数据的列表。确保列表的长度与数据帧中已有的数据的长度相匹配。
  3. 将列表添加到数据帧中,作为字典元素。

让我们看一个例子。

示例

# 导入pandas
import pandas as pd

# 创建一个数据帧
data = {
   'Name': ['哈菲兹', '阿斯兰', '卡里姆'],
   '年龄': [19, 18, 15],
   '职业': ['Python爱好者', '程序员', '学生']
}
数据帧 = pd.DataFrame(data)
print('-----------在添加新列之前----------')
print(数据帧)
print('\n\n')

# 为新列创建一个列表
地点 = ['内洛尔', '孟买', '安得拉邦']

# 我们使用'Places'作为列名
# 将列表作为列添加到数据帧中
数据帧['地点'] = 地点
print('---------------添加新列后------------')
print(数据帧)

输出

如果您运行以上程序,您将得到如下结果。

-----------在添加新列之前----------
    Name     年龄    职业
0  哈菲兹     19     Python爱好者
1   阿斯兰     18     程序员
2  卡里姆     15        学生
---------------添加新列后------------
    Name   年龄   职业     地点
0  哈菲兹   19   Python爱好者  内洛尔
1   阿斯兰   18    程序员    孟买
2  卡里姆   15     学生    安得拉邦

DataFrame.insert()

有一个内置方法称为 insert() 来添加新列。要添加新列,请按如下步骤操作。

算法

1. 使用字典创建数据帧。
2. 创建一个包含新列数据的列表。确保列表的长度与数据帧中已有的数据的长度相匹配。
3. 使用DataFrame.insert(index, column_name, data) 方法将数据插入到数据帧中。

示例

# 导入pandas
import pandas as pd

# 创建一个数据帧
data = {
   'Name': ['哈菲兹', '阿斯兰', '卡里姆'],
   '年龄': [19, 18, 15],
   '职业': ['Python爱好者', '程序员', '学生']
}
数据帧 = pd.DataFrame(data)
print('-----------在添加新列之前----------')
print(数据帧)
print('\n\n')

# 为新列创建一个列表
地点 = ['内洛尔', '孟买', '安得拉邦']

# 我们使用'Places'作为列名
# 使用insert(index, column_name, data)方法将列表作为列添加到数据帧中
数据帧.insert(2, '地点', 地点)
print('---------------添加新列后------------')
print(数据帧)

输出

如果您运行以上程序,您将得到如下结果。

-----------在添加新列之前----------
      Name  年龄  职业
0   哈菲兹   19  Python爱好者
1    阿斯兰   18 程序员
2   卡里姆   15    学生

---------------添加新列后------------
       Name  年龄  地点  职业
0  哈菲兹   19   内洛尔  Python爱好者
1   阿斯兰   18   孟买  程序员
2  卡里姆   15   安得拉邦 学生

DataFrame.assign()

该方法需要一个参数,即一个数据列表,并将其作为列添加到数据帧末尾。

Algorithm

 1.创建一个数据帧。
2.将一列指定为列表。
3.使用DataFrame.assign()方法将数据列表添加为新列。

Example

# 导入pandas库
import pandas as pd

# 创建一个数据帧
data = {
   'Name': ['哈菲兹', '阿斯兰', '卡里姆'],
   '年龄': [19, 18, 15],
   '职业': ['Python爱好者', '程序员', '学生']
}
数据帧 = pd.DataFrame(data)
print('-----------在添加新列之前----------')
print(数据帧)
print('\n\n')

# 用列表创建一个新列
地点 = ['内洛尔', '孟买', '安得拉邦']

# 将数据列表添加为新列
数据帧 = 数据帧.assign(地点=地点)
print('---------------添加新列后------------')
print(数据帧)

输出

如果您运行以上程序,您将得到如下结果。

-----------在添加新列之前----------
    Name     年龄    职业
0  哈菲兹     19     Python爱好者
1   阿斯兰     18     程序员
2  卡里姆     15        学生
---------------添加新列后------------
       Name  年龄    职业     地点
0  哈菲兹   19  Python爱好者  内洛尔
1   阿斯兰   18    程序员    孟买
2  卡里姆   15     学生    安得拉邦
  1. 使用字典创建DataFrame。
  2. 创建一个包含新列数据的列表。确保列表的长度与已存在于数据框中的数据的长度相同。
  3. 使用DataFrame.assign(column_name = data)方法将数据插入到DataFrame中。它将返回一个新的数据框。因此,我们需要将它存储起来。
  4. 打印新的数据框。

让我们看一个例子。

例如

# 导入pandas
import pandas as pd
# 创建一个DataFrame
data = {
   'Name': ['Hafeez', 'Aslan', 'Kareem'],
   'Age': [19, 18, 15],
   'Profession': ['Pythoneer', 'Programmer', 'Student']
}
dataframe = pd.DataFrame(data)
print('-----------添加新列之前----------')
print(dataframe)
print('\n\n')
# 为新列创建一个列表
places = ['Nellore', 'Mumbai', 'Andhra']
# 我们将 'Places' 作为列名
# 使用 assign(column_name = data) 将列表添加到数据框中作为列
new_dataframe = dataframe.assign(Places = places)
print('---------------添加新列后------------')
print(new_dataframe)

输出

如果您运行上面的程序,您将得到以下结果。

-----------添加新列之前----------
   Name   Age  Profession
0  Hafeez   19   Pythoneer
1   Aslan   18  Programmer
2  Kareem   15     Student
---------------添加新列后------------
     Name  Age  Profession   Places
0  Hafeez   19   Pythoneer  Nellore
1   Aslan   18  Programmer   Mumbai
2  Kareem   15     Student   Andhra

结论

如果您对本教程有任何疑问,请在评论区中提出。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程