pandas系列学习教程——replace() 方法

该文章已生成可运行项目,

在 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: 用于转变 padbfill,通常不需要修改,默认值为 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 中的特定值。通过灵活使用其参数,用户可以实现简单的数值替换、批量替换、正则表达式匹配等操作。根据实际需求选择合适的方式,可以有效地清理和处理数据。

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值