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

如何从Pandas DataFrame列的字典中提取animal值至新列?

解决Pandas提取字典列中指定键值的问题

问题场景

你有一个名为data的Pandas DataFrame(共200行),其中B列每行是类似{'animal':'cat', 'bird':'peacock'}的内容,需要提取所有行中animal对应的值到新列C中。

你的问题原因

你之前用split(':')的方法行不通,因为:

  • 如果B列是真实的Python字典对象,字典没有split方法,直接调用会报错;
  • 如果B列是字符串格式的字典,split的方式逻辑不稳定(比如字典内其他键值对也有冒号时,分割结果会混乱),无法准确提取animal的值。

针对性解决方案

分两种情况处理:

情况1:B列是真实的Python字典类型

直接通过键访问提取值,两种简洁写法:

# 方法1:apply配合lambda
data['C'] = data['B'].apply(lambda x: x.get('animal'))

# 方法2:Pandas内置的str.get方法(更高效)
data['C'] = data['B'].str['animal']

情况2:B列是字符串格式的字典(比如内容是"{'animal':'cat', ...}")

需要先把字符串解析为字典,再提取值:

import ast

# 先用ast.literal_eval把字符串转成字典,再提取animal的值
data['C'] = data['B'].apply(lambda x: ast.literal_eval(x).get('animal'))

注意:ast.literal_eval比eval更安全,适合解析这种字符串格式的Python数据结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:20:41