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

如何提取Pandas DataFrame列表列中指定值对应的下一个元素

解决方案

核心思路

遍历每行的列表,定位目标值的索引,判断索引位置后返回后邻元素或空列表,通过apply方法批量处理整列数据。

完整实现代码

import pandas as pd

# 构造测试DataFrame(实际使用时替换为你自己的DataFrame即可)
df = pd.DataFrame({
    'lists': [
        ['a', 'b', 'c', 'd'],
        ['c', 'b', 'a', 'e'],
        ['a', 'e', 'f', 'b']
    ]
})

# 定义要查找的目标值
target = 'b'

# 定义获取后邻元素的函数
def get_next(lst, target_val):
    target_idx = lst.index(target_val)
    return lst[target_idx + 1] if target_idx < len(lst) - 1 else []

# 生成新列
df['next_element'] = df['lists'].apply(lambda x: get_next(x, target))

输出结果

运行上述代码后df的输出和你给出的示例完全一致:

lists next_element
0  [a, b, c, d]            c
1  [c, b, a, e]            a
2  [a, e, f, b]           []

补充说明

  • 题目已明确所有列表都包含目标值,因此不需要额外处理list.index()找不到目标值抛出的ValueError异常
  • 上述代码默认返回目标值第一次出现的后邻元素,如果你的场景中列表可能存在多个目标值,需要返回最后一次出现的后邻元素,将函数中target_idx = lst.index(target_val)替换为以下代码即可:
    target_idx = len(lst) - 1 - lst[::-1].index(target_val)
    

内容的提问来源于stack exchange,提问作者Jorge A. Salazar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:45:03