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

Python:如何从Series的每行列表中提取第三个元素?

解决方法:提取Series中每个列表的第三个元素

首先咱们得理清问题根源:df[:][2] 并不是对每个列表元素做索引,而是在Series层面取元素。具体来说,df[:] 返回整个Series,后续的[2]是按Series的索引(或位置)取出某一行,而非遍历每个列表提取第三个值——这就是你得到原Series中索引3对应行([4, C, H])的原因。

正确的语法有两种常用方式:

1. 使用apply()方法遍历每个元素

这是最直观的方式,对Series里的每个列表单独执行索引操作:

# 提取每个列表的第三个元素,并保留为列表形式
new_series = df.apply(lambda x: [x[2]])

如果不需要把结果包裹在列表里,直接取单个值的话,可以去掉括号:

new_series = df.apply(lambda x: x[2])

2. 使用Pandas的.str属性

由于你的Series元素都是列表,Pandas提供了.str属性来便捷处理这类序列型元素,写法更简洁:

# 直接提取每个列表的第三个元素(返回单个值)
new_series = df.str[2]
# 如果需要保留列表形式,再加一层apply转换
new_series = df.str[2].apply(lambda x: [x])

验证结果

用你的示例数据测试,两种方法都会得到你预期的输出:

Index  Information
1      [C]
2      [C]
3      [H]
4      [H]
5      [H]
6      [H]

总结一下:别把Series的索引操作和列表的索引操作混淆啦,要对每个元素做针对性处理,就得用遍历类方法(比如apply)或者Pandas专门的序列处理属性(.str)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:28:11