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中的条件替换列中的值