Pandas DataFrame列表列元素插入与路线legs拆分实现
实现步骤
首先准备原始数据:
import pandas as pd df = pd.DataFrame({ "booking": ['A', 'B', 'C'], "route": [['1','2','3'],['5','4','1'],['3','6','8']] })
步骤1:在每个route列表头部插入'0'
直接用apply对每个列表进行拼接操作:
# 复制原DataFrame避免修改原数据 df1 = df.copy() # 在每个route列表开头添加'0' df1['route'] = df1['route'].apply(lambda lst: ['0'] + lst)
执行后df1的route列就变成了[['0','1','2','3'],['0','5','4','1'],['0','3','6','8']]
步骤2:将route转换为legs(相邻节点拼接)
同样用apply,结合列表推导式处理每个列表,把相邻元素用>连接:
# 生成legs列 df1['legs'] = df1['route'].apply( lambda lst: [f"{a}>{b}" for a, b in zip(lst[:-1], lst[1:])] ) # 若不需要保留原route列,可执行删除 df1 = df1.drop('route', axis=1)
最终df1的结果为:
booking legs 0 A [0>1, 1>2, 2>3] 1 B [0>5, 5>4, 4>1] 2 C [0>3, 3>6, 6>8]
内容的提问来源于stack exchange,提问作者bluekit46
相关产品推荐
相关产品推荐

