如何使用 Pandas 在 DataFrame 中添加列

如何使用 Pandas 在 DataFrame 中添加列

参考:pandas append column to dataframe

在数据处理和分析中,经常需要对数据集进行修改或扩展,比如添加新的列。PandasPython 中一个强大的数据处理库,它提供了多种方式来对 DataFrame 进行操作。本文将详细介绍如何使用 Pandas 在 DataFrame 中添加列,包括不同的方法和场景。

1. 使用赋值方式添加列

最简单直接的添加列的方法是通过赋值。这种方法适用于你已经有一个完整的列数据,想要将其添加到 DataFrame 中。

示例代码 1

import pandas as pd

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

# 添加新列
df['C'] = [7, 8, 9]

print(df)

Output:

如何使用 Pandas 在 DataFrame 中添加列

2. 使用 assign 方法添加列

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

示例代码 2

import pandas as pd

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

# 使用assign添加新列
new_df = df.assign(C=[7, 8, 9])

print(new_df)

Output:

如何使用 Pandas 在 DataFrame 中添加列

3. 根据现有列计算添加新列

在实际应用中,新列的数据可能是基于现有列计算得出的。这时,可以直接通过赋值将计算结果作为新列。

示例代码 3

import pandas as pd

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

# 添加新列,该列是现有两列的和
df['C'] = df['A'] + df['B']

print(df)

Output:

如何使用 Pandas 在 DataFrame 中添加列

4. 使用 insert 方法插入列

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

示例代码 4

import pandas as pd

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

# 在第一列位置插入新列
df.insert(1, 'C', [7, 8, 9])

print(df)

Output:

如何使用 Pandas 在 DataFrame 中添加列

5. 使用字典添加多列

如果需要同时添加多个列,可以使用字典批量添加。

示例代码 5

import pandas as pd

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

# 同时添加多个列
df = df.assign(**{'C': [7, 8, 9], 'D': [10, 11, 12]})

print(df)

Output:

如何使用 Pandas 在 DataFrame 中添加列

6. 使用 concat 方法添加列

当你有另一个 DataFrame 或 Series,并希望将其作为列添加到现有 DataFrame 时,可以使用 concat 方法。

示例代码 6

import pandas as pd

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

new_col = pd.Series([7, 8, 9], name='C')

# 使用concat添加列
df = pd.concat([df, new_col], axis=1)

print(df)

Output:

如何使用 Pandas 在 DataFrame 中添加列

7. 使用 merge 方法添加列

如果新添加的列依赖于另一个 DataFrame 中的数据,并且需要根据某些键进行合并,可以使用 merge 方法。

示例代码 7

import pandas as pd

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

new_data = pd.DataFrame({
    'A': [1, 2, 3],
    'C': [7, 8, 9]
})

# 使用merge根据'A'列合并数据
df = pd.merge(df, new_data, on='A')

print(df)

Output:

如何使用 Pandas 在 DataFrame 中添加列

8. 使用 join 方法添加列

join 方法类似于 merge,但它默认使用索引作为连接键。这对于索引对齐的数据添加特别有用。

示例代码 8

import pandas as pd

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

new_data = pd.DataFrame({
    'C': [7, 8, 9]
}, index=[0, 1, 2])

# 使用join添加列
df = df.join(new_data)

print(df)

Output:

如何使用 Pandas 在 DataFrame 中添加列

9. 使用 update 方法更新列

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

示例代码 9

import pandas as pd

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

new_values = pd.DataFrame({
    'B': [7, 8, 9]
}, index=[0, 1, 2])

# 使用update更新列'B'
df.update(new_values)

print(df)

Output:

如何使用 Pandas 在 DataFrame 中添加列

10. 使用 eval 方法动态添加列

eval 方法允许你使用字符串表达式动态计算新列的值。

示例代码 10

import pandas as pd

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

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

print(df)

Output:

如何使用 Pandas 在 DataFrame 中添加列

以上是使用 Pandas 在 DataFrame 中添加列的十种常见方法。每种方法都有其适用场景和优缘势,选择合适的方法可以使数据处理更加高效和灵活。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程