Pandas中向DataFrame追加列的方法

Pandas中向DataFrame追加列的方法

参考:pandas append columns to dataframe

在数据处理和分析中,经常需要对数据进行整合或扩展,比如向现有的数据框(DataFrame)中添加新的列。Pandas是Python的一个强大的数据处理库,它提供了多种方式来向DataFrame中追加列。本文将详细介绍如何在Pandas中向DataFrame追加列,并提供多个示例代码以供参考。

1. 使用赋值方式添加列

最直接的向DataFrame添加列的方法是通过赋值。这种方法简单直观,可以快速地为DataFrame添加一列。

示例代码1

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 添加新列C
df['C'] = ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com']

print(df)

Output:

Pandas中向DataFrame追加列的方法

2. 使用assign方法添加列

assign方法可以在不改变原始DataFrame的基础上返回一个新的DataFrame,这个新的DataFrame包含了添加的新列。

示例代码2

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 使用assign添加新列C
new_df = df.assign(C=['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'])

print(new_df)

Output:

Pandas中向DataFrame追加列的方法

3. 使用insert方法插入列

如果你需要在特定的位置插入列,可以使用insert方法。这个方法允许你指定列的插入位置。

示例代码3

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 在第1个位置插入新列C
df.insert(1, 'C', ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'])

print(df)

Output:

Pandas中向DataFrame追加列的方法

4. 使用字典扩展DataFrame

当你有多列需要添加时,可以使用字典的方式进行扩展。

示例代码4

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 添加多列
df = df.assign(**{
    'C': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
    'D': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com']
})

print(df)

Output:

Pandas中向DataFrame追加列的方法

5. 使用concat函数横向合并DataFrame

如果你有两个DataFrame,想要将它们按列合并,可以使用concat函数。

示例代码5

import pandas as pd

# 创建两个DataFrame
df1 = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

df2 = pd.DataFrame({
    'C': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com'],
    'D': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com']
})

# 横向合并DataFrame
result = pd.concat([df1, df2], axis=1)

print(result)

Output:

Pandas中向DataFrame追加列的方法

6. 使用merge函数按键合并

merge函数可以根据一个或多个键将不同的DataFrame的列合并到一起。

示例代码6

import pandas as pd

# 创建两个DataFrame
df1 = pd.DataFrame({
    'Key': [1, 2, 3],
    'A': [4, 5, 6]
})

df2 = pd.DataFrame({
    'Key': [1, 2, 3],
    'B': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com']
})

# 使用Key作为合并键
result = pd.merge(df1, df2, on='Key')

print(result)

Output:

Pandas中向DataFrame追加列的方法

7. 使用join方法添加列

join方法是另一种在DataFrame之间添加列的方法,它默认使用索引作为连接键。

示例代码7

import pandas as pd

# 创建两个DataFrame
df1 = pd.DataFrame({
    'A': [1, 2, 3]
})

df2 = pd.DataFrame({
    'B': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com']
})

# 使用索引作为连接键进行join操作
result = df1.join(df2)

print(result)

Output:

Pandas中向DataFrame追加列的方法

8. 使用update方法更新列

如果你需要更新DataFrame中的某些列的值,可以使用update方法。

示例代码8

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 创建另一个DataFrame用于更新
update_df = pd.DataFrame({
    'A': [100, 200, 300],
    'B': ['pandasdataframe.com', 'pandasdataframe.com', 'pandasdataframe.com']
})

# 使用update更新列
df.update(update_df)

print(df)

9. 使用eval方法快速操作列

eval方法可以用来快速计算DataFrame中的表达式。

示例代码9

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 使用eval添加新列C
df.eval('C = A + B', inplace=True)

print(df)

Output:

Pandas中向DataFrame追加列的方法

10. 使用pipe方法应用函数

pipe方法可以将DataFrame通过一个函数进行处理,这在添加列时也非常有用。

示例代码10

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 定义一个添加列的函数
def add_column(data, column_name, value):
    data[column_name] = value
    return data

# 使用pipe添加新列C
df = df.pipe(add_column, 'C', 'pandasdataframe.com')

print(df)

Output:

Pandas中向DataFrame追加列的方法

以上就是在Pandas中向DataFrame追加列的十种方法。每种方法都有其适用场景,根据实际需要选择合适的方法来处理数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程