如何在 Pandas 的 DataFrame 中添加列

如何在 Pandas 的 DataFrame 中添加列

参考:pandas dataframe add column

在数据分析和数据处理过程中,经常需要对数据进行修改或增加新的信息。Pandas 是 Python 中一个非常流行的数据处理库,它提供了非常丰富的数据结构和操作方法。本文将详细介绍如何在 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. 根据现有列计算添加新列

在实际应用中,我们经常需要根据 DataFrame 中现有的列来计算新的列。

示例代码 3

import pandas as pd

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

# 添加新列C,其为列A和列B的和
df['C'] = df['A'] + df['B']

print(df)

Output:

如何在 Pandas 的 DataFrame 中添加列

4. 使用 insert 方法指定列的位置

如果你想在 DataFrame 中的特定位置插入列,可以使用 insert 方法。

示例代码 4

import pandas as pd

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

# 在索引为1的位置插入新列C
df.insert(1, 'C', [7, 8, 9])

print(df)

Output:

如何在 Pandas 的 DataFrame 中添加列

5. 使用 concat 方法添加列

当你有多个 DataFrame 或者 Series 需要合并时,concat 方法是一个非常有用的工具。

示例代码 5

import pandas as pd

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

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

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

print(df)

Output:

如何在 Pandas 的 DataFrame 中添加列

6. 使用 merge 方法添加列

merge 方法通常用于根据一个或多个键将不同的 DataFrame 合并起来,但它也可以用来添加列。

示例代码 6

import pandas as pd

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

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

# 使用merge方法添加列,根据列A进行合并
df = pd.merge(df, new_column, on='A')

print(df)

Output:

如何在 Pandas 的 DataFrame 中添加列

7. 使用 map 方法根据映射添加列

map 方法可以根据一个映射关系或函数,将一个 Series 中的值转换成另外的值。

示例代码 7

import pandas as pd

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

mapping = {1: 'one', 2: 'two', 3: 'three'}

# 使用map方法根据映射关系添加列C
df['C'] = df['A'].map(mapping)

print(df)

Output:

如何在 Pandas 的 DataFrame 中添加列

8. 使用 apply 方法添加列

apply 方法可以对 DataFrame 的行或列应用一个函数,非常灵活。

示例代码 8

import pandas as pd

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

# 使用apply方法添加列C,其为列A的两倍
df['C'] = df['A'].apply(lambda x: x * 2)

print(df)

Output:

如何在 Pandas 的 DataFrame 中添加列

9. 使用条件表达式添加列

有时候我们需要根据条件来添加列,这可以通过 numpywhere 方法来实现。

示例代码 9

import pandas as pd
import numpy as np

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

# 使用条件表达式添加列C
df['C'] = np.where(df['A'] > 2, 'high', 'low')

print(df)

Output:

如何在 Pandas 的 DataFrame 中添加列

10. 使用 eval 方法添加列

eval 方法允许 DataFrame 执行字符串表达式,这在动态构建表达式时非常有用。

示例代码 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 中添加列的一些常见方法。每种方法都有其适用场景,选择合适的方法可以使数据处理更加高效和灵活。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程