如何在Python中向现有的数据框中添加新列?
Python是一种高级编程语言,其应用广泛,尤其在数据科学领域中。Python中一个常用的数据结构是数据框,例如Pandas提供的数据框,它可以存储和处理大量的有序数据。在处理数据时,我们可能需要向一个现有的数据框中添加新列,本文将介绍Python中如何实现这一操作。
更多Python教程,请阅读:Python 教程
添加新列的方法
Python提供了多种方式向现有数据框中添加新列。下面将逐一进行讲解。
方法一:使用字典将新列添加到现有数据框中
可以通过将新列作为一个字典添加到现有数据框的方式实现列的添加,示例如下:
# 导入必要的包
import pandas as pd
# 创建一个示例数据框
data = {'姓名': ['张三', '李四', '王五', '赵六'],
'性别': ['男', '女', '男', '女'],
'年龄': [21, 22, 23, 24]}
df = pd.DataFrame(data)
# 将新列添加到数据框中
新增列 = {'身高': [1.74, 1.63, 1.85, 1.72]}
df['身高'] = pd.DataFrame(新增列)
代码中'身高'
列的数据由一个字典给出,通过pd.DataFrame()
函数将其转换为数据框形式,并使用df['身高']
将其添加到现有的数据框中。
方法二:使用apply()函数将自定义函数应用于现有数据框中
可以自定义一个函数,然后使用apply()
函数将该函数应用于现有数据框中,从而创建新列,示例如下:
# 创建一个自定义函数
def calculate_bmi(row):
height = row['身高']
weight = row['体重']
return round(weight / (height ** 2), 2)
# 创建一个示例数据框
data = {'姓名': ['张三', '李四', '王五', '赵六'],
'性别': ['男', '女', '男', '女'],
'年龄': [21, 22, 23, 24],
'身高': [1.74, 1.63, 1.85, 1.72],
'体重': [68, 56, 80, 65]}
df = pd.DataFrame(data)
# 将新列添加到数据框中
df['BMI'] = df.apply(calculate_bmi, axis=1)
代码中自定义函数calculate_bmi()
通过计算每行数据中的身高和体重,然后计算BMI指标,最后将其返回。apply()
函数通过axis=1
表示将该函数应用于现有数据框的每行,然后将计算得到的结果添加为新列'BMI'
。
方法三:使用assign()函数添加新列
可以使用assign()
函数添加新列,示例如下:
# 创建一个示例数据框
data = {'姓名': ['张三', '李四', '王五', '赵六'],
'性别': ['男', '女', '男', '女'],
'年龄': [21, 22, 23, 24],
'身高': [1.74, 1.63, 1.85, 1.72]}
df = pd.DataFrame(data)
# 将新列添加到数据框中
df = df.assign(BMI=df['体重'] / (df['身高'] ** 2))
代码中assign()
函数将通过对df['体重']
和df['身高']
的计算得到的结果添加为新列'BMI'
。最后将新的数据框重新赋值给原变量。
结论
本文介绍了Python中向现有的数据框中添加新列的三种方法:使用字典、使用apply()函数以及使用assign()函数。这些方法均能够有效地实现向数据框中添加新列的操作,根据不同的需求选择不同的方法即可。值得注意的是,这些方法可能在性能和使用场景上存在某些差异,需要根据实际情况进行选择和应用。