如何按条件替换Pandas DataFrame中的disposition列值?
按条件替换DataFrame中disposition列的值
现有DataFrame情况
我们有一个仅包含disposition列的DataFrame,数据如下:
disposition --------- NO ANSWER ANSWERED FAILED BUSY ERROR WARNING CANCEL
创建该DataFrame的代码:
import pandas as pd data1 = {'disposition': ['NO ANSWER', 'ANSWERED', 'FAILED', 'BUSY', 'ERROR', 'WARNING', 'CANCEL']} df = pd.DataFrame(data1)
替换规则
需要按以下规则替换disposition列的值:
WHEN disposition = 'NO ANSWER' THEN 0
WHEN disposition = 'ANSWERED' THEN 1
WHEN disposition = 'FAILED' THEN 2
WHEN disposition = 'BUSY' THEN 3
ELSE 9
实现方法
这里提供两种高效的实现方式:
方法1:使用replace函数
# 定义映射关系字典 disposition_map = { 'NO ANSWER': 0, 'ANSWERED': 1, 'FAILED': 2, 'BUSY': 3 } # 执行替换,未匹配到的统一设为9 df['disposition'] = df['disposition'].replace(disposition_map, 9)
方法2:使用map结合字典get方法
disposition_map = { 'NO ANSWER': 0, 'ANSWERED': 1, 'FAILED': 2, 'BUSY': 3 } # 遍历列值,匹配不到返回默认值9 df['disposition'] = df['disposition'].map(lambda x: disposition_map.get(x, 9))
替换后结果
执行上述任意一种代码后,disposition列会变为:
disposition --------- 0 1 2 3 9 9 9
内容的提问来源于stack exchange,提问作者harp1814
相关产品推荐
相关产品推荐

