📌  相关文章
📜  python在不更改原始数据的情况下向数据框添加列 - Python(1)

📅  最后修改于: 2023-12-03 15:19:32.472000             🧑  作者: Mango

Python在不更改原始数据的情况下向数据框添加列

在Python中,有多种方法向数据框(DataFrame)中添加新的列,而不需要更改原始数据。这种操作可以用于在数据框中进行计算、合并数据、添加元数据等。

以下是一些常用的方法和示例,演示了如何添加新的列到数据框中。

1. 使用索引直接赋值

可以使用索引直接赋值的方式向数据框添加新的列。这种方法可以按照已有数据的索引位置,直接添加新的列。

示例代码:

import pandas as pd

# 创建一个示例数据框
data = {'Name': ['John', 'Emma', 'Mike', 'Lisa'],
        'Age': [28, 24, 30, 27]}
df = pd.DataFrame(data)

# 添加新的列
df['Salary'] = [4000, 3500, 4500, 3800]

# 打印数据框
df

输出结果:

| Name | Age | Salary | |------|-----|--------| | John | 28 | 4000 | | Emma | 24 | 3500 | | Mike | 30 | 4500 | | Lisa | 27 | 3800 |

2. 使用assign函数

Pandas提供了一个assign函数,可以方便地向数据框中添加新的列。assign函数可以同时添加多个列,并且返回一个新的数据框对象。

示例代码:

import pandas as pd

# 创建一个示例数据框
data = {'Name': ['John', 'Emma', 'Mike', 'Lisa'],
        'Age': [28, 24, 30, 27]}
df = pd.DataFrame(data)

# 使用assign函数添加新的列
df = df.assign(Salary=[4000, 3500, 4500, 3800], Department=['HR', 'Sales', 'IT', 'Marketing'])

# 打印数据框
df

输出结果:

| Name | Age | Salary | Department | |------|-----|--------|------------| | John | 28 | 4000 | HR | | Emma | 24 | 3500 | Sales | | Mike | 30 | 4500 | IT | | Lisa | 27 | 3800 | Marketing |

3. 使用apply函数

可以使用apply函数结合lambda表达式,在数据框的每一行上进行计算,并添加新的列。这种方法可以根据已有列的值进行计算,然后将计算结果作为新列添加到数据框中。

示例代码:

import pandas as pd

# 创建一个示例数据框
data = {'Name': ['John', 'Emma', 'Mike', 'Lisa'],
        'Age': [28, 24, 30, 27]}
df = pd.DataFrame(data)

# 使用apply函数添加新的列
df['Salary'] = df['Age'].apply(lambda x: x * 1000)

# 打印数据框
df

输出结果:

| Name | Age | Salary | |------|-----|--------| | John | 28 | 28000 | | Emma | 24 | 24000 | | Mike | 30 | 30000 | | Lisa | 27 | 27000 |

以上是一些常用的方法,用于向数据框中添加新的列。这些方法都遵循原则:不更改原始数据,而是返回一个新的数据框对象。根据需求,可以选择适合的方法来添加列,以便进行进一步的数据分析和处理。