在 Pandas 中,replace() 方法用于替换 DataFrame 或 Series 中的特定值。这个方法非常灵活,可以进行简单的值替换、正则表达式替换、以及多种值的批量替换。接下来,我们将详细介绍 replace() 方法的语法和用法示例。

语法

DataFrame.replace(to_replace=None, value=None, *,

limit=None, regex=False, method='pad', inplace=False,

col_level=None, col_fill=None)

参数说明

to_replace: 要被替换的值,可以是单个值、列表、字典或正则表达式。value: 替换后的值,可以是单个值、列表、字典或 DataFrame/Series。limit: 可选参数,限制替换的数量。regex: 如果为 True,to_replace 被视为正则表达式。method: 用于转变 pad 或 bfill,通常不需要修改,默认值为 pad。inplace: 如果为 True,将直接在原对象上进行替换,而不是返回新的对象。col_level: 适用于 MultiIndex,指定要替换的列级别。col_fill: 对于 MultiIndex,替换缺失值时的填充。

示例

下面是一些使用 replace() 方法的示例。

1. 替换单个值

import pandas as pd

# 创建示例 DataFrame

df = pd.DataFrame({

'A': [1, 2, 3, 1],

'B': [4, 5, 1, 2],

'C': [7, 8, 9, 3]

})

print("原始 DataFrame:")

print(df)

# 替换值 1 为 100

df_replaced = df.replace(1, 100)

print("\n替换 1 为 100:")

print(df_replaced)

输出

A B C

0 100 4 7

1 2 5 8

2 3 100 9

3 100 2 3

2. 替换多个值

# 替换多个值

df_replaced = df.replace([1, 2], [100, 200])

print("\n替换 1 为 100,2 为 200:")

print(df_replaced)

输出

A B C

0 100 4 7

1 200 5 8

2 3 100 9

3 100 200 3

3. 使用字典进行替换

# 使用字典进行替换

df_replaced = df.replace({'A': 1, 'B': 2}, {'A': 100, 'B': 200})

print("\n使用字典替换:")

print(df_replaced)

输出

A B C

0 100 4 7

1 2 200 8

2 3 1 9

3 100 2 3

4. 使用正则表达式进行替换

# 创建包含字符串的 DataFrame

df_str = pd.DataFrame({

'A': ['apple', 'banana', 'cherry', 'date'],

'B': ['red', 'yellow', 'red', 'brown']

})

print("\n原始字符串 DataFrame:")

print(df_str)

# 使用正则表达式替换以 'a' 开头的字符串为 'fruit'

df_replaced = df_str.replace(to_replace=r'^a.*', value='fruit', regex=True)

print("\n使用正则表达式替换以 'a' 开头的字符串为 'fruit':")

print(df_replaced)

输出

A B

0 fruit red

1 banana yellow

2 cherry red

3 date brown

5. 限制替换数量

# 仅替换前 1 个出现的 1

df_replaced = df.replace(1, 100, limit=1)

print("\n仅替换一次出现的 1 为 100:")

print(df_replaced)

输出

A B C

0 100 4 7

1 2 5 8

2 3 1 9

3 1 2 3

6. inplace 参数

使用 inplace=True 直接修改原 DataFrame。

# 在原 DataFrame 上使用 inplace 参数替换

df.replace(1, 100, inplace=True)

print("\n在原 DataFrame 上使用 inplace 替换:")

print(df)

输出

A B C

0 100 4 7

1 2 5 8

2 3 100 9

3 100 2 3

总结

replace() 方法是 Pandas 中非常有用的工具,可以轻松替换 DataFrame 或 Series 中的特定值。通过灵活使用其参数,用户可以实现简单的数值替换、批量替换、正则表达式匹配等操作。根据实际需求选择合适的方式,可以有效地清理和处理数据。