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

DataFrame中基于From/To列生成含To值连续序列的问题

解决DataFrame生成包含To值的连续序列问题

我来帮你搞定这个小问题!你已经找对了方向,只是在range的参数处理上有个容易忽略的细节——Python里的range是左闭右开的区间,也就是说range(start, stop)只会生成从start到stop-1的整数,这就是你明明加了1却没得到预期结果的原因(大概率是某次测试时没把+1加到正确的位置上)。

正确的解法步骤:

要生成包含To列数值的连续序列,必须把range的结束参数设为To + 1,再把序列转换成逗号分隔的字符串。

修正后的代码:

import pandas as pd

# 示例DataFrame
df = pd.DataFrame({
    'From': [15887, 15888, 15889, 15890],
    'To': [16251, 16252, 16253, 16254]
})

# 生成包含To值的连续序列并写入新列
df['Sequence'] = df.apply(lambda x: ','.join(map(str, range(x['From'], x['To'] + 1))), axis=1)

# 查看结果
print(df.head())

验证效果:

比如针对From=5, To=11的情况,这段代码会生成"5,6,7,8,9,10,11",完全符合你的预期。对于示例里的第一行数据,序列会从15887一直到16251,包含两端的数值。

常见误区提醒:

  • 不要忘记axis=1参数:确保apply按行处理每一组From和To的值,否则会报错。
  • 确认range的结束值是To+1:如果写成range(x['From'], x['To']),就会漏掉To的值,这也是你之前测试时可能出现的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:17:56