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

如何在Pandas中从多列嵌套结构提取整数值

高效提取DataFrame嵌套列中的整数值

嘿,我懂你遇到的麻烦了——用字符串替换没效果还报错,根本原因是你的ranks和search_volume列存的不是字符串,而是列表嵌套字典和字典对象,字符串处理方法自然不适用,这也是你碰到AttributeError: 'list' object has no attribute 'lstrip'的原因。

咱们直接操作这些Python对象,用高效的方式提取数值:

方法1:使用apply结合lambda(简洁直观)

# 处理ranks列:提取列表中第一个字典的rank值
df['ranks'] = df['ranks'].apply(lambda x: x[0]['rank'])
# 处理search_volume列:提取字典中的search_volume值
df['search_volume'] = df['search_volume'].apply(lambda x: x['search_volume'])

方法2:使用列表推导式(性能更优,适合大数据集)

如果你的DataFrame行数很多,列表推导式的执行效率会比apply更高:

# 处理ranks列
df['ranks'] = [entry[0]['rank'] for entry in df['ranks']]
# 处理search_volume列
df['search_volume'] = [entry['search_volume'] for entry in df['search_volume']]

执行完上面的代码后,你的DataFrame就会变成你想要的样子:

keywordrankssearch_typesearch_volume
keyword11110
keyword11210
keyword211390
keyword212390
keyword311170

这两种方法都直接操作原始的Python对象,避免了字符串转换的额外开销,比你之前尝试的字符串替换高效得多。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:59:04