You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历pandas DataFrame中列表类型的列并按字典映射替换值?

问题原因

Series.replace() 只会匹配元素的完整值,你当前label列的每个元素都是列表,方法无法识别到列表内部的单个数值,因此替换不生效。

解决方法

直接用apply遍历每一行的列表元素,对列表内的每个数值做映射替换即可:

label_dict = {1:'production', 2:'to_be_discussed'}
# 遍历每个列表,替换内部数值
df['label'] = df['label'].apply(lambda x: [label_dict[num] for num in x])

如果你的列表中可能存在label_dict未定义的数值,可以调整为以下写法避免KeyError,未匹配到的数值会保留原值:

df['label'] = df['label'].apply(lambda x: [label_dict.get(num, num) for num in x])

替换后结果

针对你给出的示例数据,运行后label列的输出为:

0    [to_be_discussed, production]
1                     [production]
Name: label, dtype: object

完全符合预期。

内容的提问来源于stack exchange,提问作者sinG20

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 02:15:03