pandas 中的 `Series.replace()` 和 `Series.map()` 有区别吗 [复制]

pythonPandas

1个回答

写回答

Wyy19870324520

2025-06-24 10:05

+ 关注

Pandas
Pandas

在Pandas中,有两种方法可以用于替换Series中的值,即Series.replace()和Series.map()。尽管它们都可以用于替换数据,但它们之间存在一些区别。

Series.replace()

Python
Python

Series.replace()是一种功能强大的方法,可以用于将Series中的某个值替换为另一个值。它可以接受多种类型的参数,包括单个值、字典、列表等。下面是一些使用Series.replace()的例子:

Python

import Pandas as pd

# 创建一个Series

data = pd.Series([1, 2, 3, 4, 5])

# 将值为1的替换为10

data.replace(1, 10, inplace=True)

print(data)

# 输出: 0 10

# 1 2

# 2 3

# 3 4

# 4 5

# dtype: int64

# 将多个值替换为同一个值

data.replace([2, 3, 4], 20, inplace=True)

print(data)

# 输出: 0 10

# 1 20

# 2 20

# 3 20

# 4 5

# dtype: int64

# 使用字典替换多个值

data.replace({10: 100, 20: 200}, inplace=True)

print(data)

# 输出: 0 100

# 1 200

# 2 200

# 3 200

# 4 5

# dtype: int64

可以看到,Series.replace()方法可以接受单个值、列表或字典,并将指定的值替换为新的值。它还有一个inplace参数,如果设置为True,则会直接修改原始Series,而不是返回一个新的Series。

Series.map()

与Series.replace()不同,Series.map()是一种映射方法,它可以将Series中的每个值映射为另一个值。它接受一个函数、字典或Series作为参数,并根据映射关系对每个值进行替换。下面是一些使用Series.map()的例子:

Python

import Pandas as pd

# 创建一个Series

data = pd.Series([1, 2, 3, 4, 5])

# 使用函数进行映射

data_mapped = data.map(lambda x: x * 10)

print(data_mapped)

# 输出: 0 10

# 1 20

# 2 30

# 3 40

# 4 50

# dtype: int64

# 使用字典进行映射

mapping = {1: "A", 2: "B", 3: "C", 4: "D", 5: "E"}

data_mapped = data.map(mapping)

print(data_mapped)

# 输出: 0 A

# 1 B

# 2 C

# 3 D

# 4 E

# dtype: object

可以看到,Series.map()方法可以接受一个函数或一个字典,并根据映射关系对每个值进行替换。它返回一个新的Series,而不会修改原始Series。

Series.replace()和Series.map()是两种不同的替换方法。Series.replace()适用于将指定的值替换为新的值,可以接受单个值、列表或字典,并且可以选择是否直接修改原始Series。而Series.map()适用于对每个值进行映射替换,可以接受函数、字典或Series,并且总是返回一个新的Series。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号