如何通过字典映射将DataFrame列中数字转换为对应字符?
字典映射DataFrame中逗号分隔字符串的实现方法
给定字典mapping_dict = {1:"A", 2:"B", 3:"C"}以及如下结构的DataFrame:
| col_1 | col_2 |
|---|---|
| 1,3,2 | |
| 1 | |
| 2,3 |
要实现将col_1中逗号分隔的数字按字典映射为对应字母并保持原顺序,填充到col_2的需求,可按以下步骤操作:
实现代码
import pandas as pd # 定义映射字典 mapping_dict = {1: "A", 2: "B", 3: "C"} # 构造初始DataFrame df = pd.DataFrame({ "col_1": ["1,3,2", "1", "2,3"], "col_2": ["", "", ""] }) # 定义映射处理函数 def map_values(s): # 拆分字符串为数字列表,映射后重新用逗号连接 return ",".join([mapping_dict[int(num)] for num in s.split(",")]) # 应用函数到col_1,结果赋值给col_2 df["col_2"] = df["col_1"].apply(map_values) print(df)
代码说明
split(","):将col_1的字符串按逗号拆分为单个数字字符串的列表int(num):将字符串数字转为整数,匹配字典的键类型mapping_dict[int(num)]:通过字典获取对应的字母值",".join(...):将映射后的字母列表重新拼接为逗号分隔的字符串apply(map_values):对col_1的每一行数据应用自定义映射函数
执行后得到的DataFrame即为目标结果:
| col_1 | col_2 |
|---|---|
| 1,3,2 | A,C,B |
| 1 | A |
| 2,3 | B,C |
内容的提问来源于stack exchange,提问作者Sam324
相关产品推荐
相关产品推荐

