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

pandas中替换Series.append为pd.concat无法正常运行问题

错误原因

pd.concat的第一个入参要求传入由pandas对象(Series、DataFrame)组成的可迭代对象(列表/元组等),你之前的写法把两个Series作为独立位置参数直接传入,会导致参数解析错误,无法正常运行。

逐次循环场景的正确替换写法

和原Series.append逻辑完全等价的pd.concat写法,只需要把两个待拼接的Series包裹为列表,作为第一个参数传入即可,默认axis=0的行拼接逻辑和原append行为完全一致:

RULColumn = pd.Series(dtype='float64')    
for unit in range(turboFanData['unitNum'].iloc[-1]):
    turboFanUnit = turboFanData[turboFanData['unitNum'] == unit+1]
    new_segment = turboFanUnit['cycles'].iloc[::-1].copy() - 1
    # 替换原append的正确写法
    RULColumn = pd.concat([RULColumn, new_segment])
性能优化建议

循环内逐次拼接pandas对象会反复生成新的Series副本,数据量较大时运行效率很低。更推荐先把所有计算得到的RUL分段存入普通Python列表,循环结束后一次性完成拼接,结果和原逻辑完全一致,性能提升明显:

rul_segment_list = []
total_units = turboFanData['unitNum'].iloc[-1]
for unit in range(total_units):
    turboFanUnit = turboFanData[turboFanData['unitNum'] == unit+1]
    segment = turboFanUnit['cycles'].iloc[::-1].copy() - 1
    rul_segment_list.append(segment)
# 一次性拼接所有分段,指定和原逻辑一致的float64类型
RULColumn = pd.concat(rul_segment_list).astype('float64')

提示:如果需要重置拼接后的索引、避免索引值重复,可以在pd.concat中加入参数ignore_index=True,可根据自身业务需求选择是否添加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 03:27:26