如何批量修改Pandas列中列表内的指定元素?
批量修改DataFrame列表列中的指定元素值
核心思路
通过定义替换映射字典,结合pandas的apply方法和列表推导式,快速批量替换列表中的指定元素,不影响其他无需修改的内容。
具体实现步骤
定义替换规则字典
把需要替换的旧值和新值一一对应存入字典,对应你的需求的字典示例:replace_map = {'mikhailovsky': 'mikhailovka', 'kamyshinsky': 'kamyshin'}批量处理目标列
对text列的每个列表元素进行遍历替换,使用apply配合lambda函数完成:df['text'] = df['text'].apply(lambda lst: [replace_map.get(word, word) for word in lst])其中
replace_map.get(word, word)的作用是:如果单词在字典中存在,就返回对应的新值;不存在则保留原单词,避免误改其他内容。
完整示例代码
import pandas as pd # 构造示例数据集 data = { 'date': ['2022-06-02'], 'text': [['municipal', 'districts', 'mikhailovsky', '84', 'kamyshinsky', '56']] } df = pd.DataFrame(data) # 定义替换规则 replace_map = {'mikhailovsky': 'mikhailovka', 'kamyshinsky': 'kamyshin'} # 执行批量替换 df['text'] = df['text'].apply(lambda lst: [replace_map.get(word, word) for word in lst]) # 查看结果 print(df)
执行后输出的结果就是你期望的df_res。如果后续需要新增替换规则,直接扩展replace_map字典即可,无需修改核心处理逻辑。
内容的提问来源于stack exchange,提问作者kostya ivanov
相关产品推荐
相关产品推荐

