在Python的Pandas中向现有数据帧添加新列
在本教程中,我们将学习如何在pandas中向现有数据帧中添加新列。我们可以有不同的方法来添加新列。让我们看看它们吧。
使用列表
我们可以使用列表添加一个新列。按照以下步骤添加一个新列。
算法
- 使用字典创建数据帧。
- 创建一个包含新列数据的列表。确保列表的长度与数据帧中已有的数据的长度相匹配。
- 将列表添加到数据帧中,作为字典元素。
让我们看一个例子。
示例
# 导入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 学生 安得拉邦
- 使用字典创建DataFrame。
- 创建一个包含新列数据的列表。确保列表的长度与已存在于数据框中的数据的长度相同。
- 使用DataFrame.assign(column_name = data)方法将数据插入到DataFrame中。它将返回一个新的数据框。因此,我们需要将它存储起来。
- 打印新的数据框。
让我们看一个例子。
例如
# 导入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
结论
如果您对本教程有任何疑问,请在评论区中提出。