Pandas:如何替换列中的多个值


您可以使用以下基本语法来替换 pandas DataFrame 的列中的多个值:

 df = df. replace ({' my_column ': {' old1 ': ' new1 ', ' old2 ': ' new2 ', ' old3 ': ' new3 '}})

以下示例展示了如何在实践中使用此语法。

示例:替换 Pandas 中某一列中的多个值

假设我们有以下 pandas DataFrame,其中包含有关各种篮球运动员的信息:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' position ': ['G', 'G', 'F', 'F', 'F', 'C', 'C'],
                   ' points ': [28, 17, 19, 14, 23, 26, 5],
                   ' rebounds ': [5, 6, 4, 7, 14, 12, 9],
                   ' assists ': [10, 13, 7, 8, 4, 5, 8]})

#view DataFrame
print (df)

  position points rebound assists
0 G 28 5 10
1 G 17 6 13
2 F 19 4 7
3 F 14 7 8
4 F 23 14 4
5 C 26 12 5
6 C 5 9 8

假设我们要在位置列中进行以下替换:

  • 将“G”替换为“守卫”
  • 将“F”更改为“转发”
  • 将 C 替换为“中心”

我们可以使用以下语法来做到这一点:

 #replace multiple values in position column
df = df. replace ({' position ': {' G ': ' Guard ', ' F ': ' Forward ', ' C ': ' Center '}})

#view updated DataFrame
print (df)

  position points rebound assists
0 Guard 28 5 10
1 Guard 17 6 13
2 Forward 19 4 7
3 Forward 14 7 8
4 Forward 23 14 4
5 Center 26 12 5
6 Center 5 9 8

请注意, Position列中的几个值已被替换。

我们可以使用类似的语法来替换数字列中的多个值。

例如,以下代码显示如何在“帮助”列中进行以下替换:

  • 将 10 替换为 20
  • 将 13 替换为 15
  • 将 8 替换为 10

我们可以使用以下语法来做到这一点:

 #replace multiple values in assists column
df = df. replace ({' assists ': {10:20, 13:15, 8:10}})

#view updated DataFrame
print (df)

  position points rebound assists
0 G 28 5 20
1 G 17 6 15
2 F 19 4 7
3 F 14 7 10
4 F 23 14 4
5 C 26 12 5
6 C 5 9 10

请注意, Assiss列中的几个值已被替换。

其他资源

以下教程解释了如何在 pandas 中执行其他常见任务:

如何在 Pandas 中用零替换 NaN 值
如何在 Pandas 中用 NaN 替换空字符串
如何根据Pandas中的条件替换列中的值

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注