如何在DataFrame列中同时将多个值替换为其他值?
替换DataFrame列中多个值的实现方法
这里有几种简洁的单一语法方案可以实现你的需求:
方法1:使用replace()方法(推荐)
pandas的replace()方法支持传入字典批量替换值,键为原数值,值为目标字符串:
import pandas as pd # 构造你的DataFrame df = pd.DataFrame({'Sex': [1, 2, 1, 1, 2, 2]}) # 一次性完成替换 df['Sex'] = df['Sex'].replace({1: 'Male', 2: 'Female'})
这个方法会保留原列中不在字典里的值(如果有的话),不会产生缺失值。
方法2:使用map()方法
通过字典映射直接转换每个元素:
df['Sex'] = df['Sex'].map({1: 'Male', 2: 'Female'})
注意:如果原列存在字典中未定义的数值,转换后会变成NaN,适合确定只有1和2两种值的场景。
方法3:使用分类类型转换
如果后续需要对该列做分类分析,可以用分类类型批量重命名:
df['Sex'] = df['Sex'].astype('category').cat.rename_categories({1: 'Male', 2: 'Female'})
内容的提问来源于stack exchange,提问作者lancet
相关产品推荐
相关产品推荐

