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

从DataFrame列表列提取元素:新增first与second_to_last列需求

如何为包含列表的DataFrame新增首元素和倒数第二个元素列?

这是个很典型的Pandas列表字段处理场景,咱们直接上可运行的解决方案,一步到位:

首先,先构造你提供的示例DataFrame(方便你直接测试):

import pandas as pd

# 初始化原DataFrame
df = pd.DataFrame({
    'id': ['001', '002', '003', '004'],
    'sequence': [['A', 'B', 'C', 'E', 'F'], ['A', 'C'], [], ['D']]
})

1. 新增first列(取列表首个元素)

我们用apply()结合匿名函数,判断列表长度,空列表就返回None:

df['first'] = df['sequence'].apply(lambda x: x[0] if len(x) > 0 else None)

2. 新增second_to_last列(取列表倒数第二个元素)

同样用apply(),这次要判断列表长度是否≥2(避免索引越界),长度不够就返回None:

df['second_to_last'] = df['sequence'].apply(lambda x: x[-2] if len(x) >= 2 else None)

最终结果

运行完上面的代码后,打印df就能得到你想要的结果:

id          sequence first second_to_last
0  001  [A, B, C, E, F]     A              E
1  002           [A, C]     A              A
2  003                []  None           None
3  004              [D]     D           None

补充说明:如果想用更简洁的Pandas原生方法,也可以用str访问器,比如df['sequence'].str[0]会自动给空列表返回NaN,再用fillna(None)转成None;不过apply+lambda的方式逻辑更直观,新手也容易理解和修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:44:51