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

pandas不使用已弃用append方法追加重复索引Series为DataFrame行

非唯一索引场景下追加Series到DataFrame末尾的实现方案

pandas 弃用append方法后,使用pd.concat可以100%复现原append的所有功能,包括支持非唯一日期索引的场景,具体操作如下:

核心实现代码

首先确保待追加的Series索引与原DataFrame的列名完全对齐,将Series转为单行DataFrame后,用concat按行拼接即可:

import pandas as pd

# 待追加的Series:索引与原DataFrame列对齐,name属性为要设置的日期索引值
new_row = pd.Series(
    data=[1540, 5, True, 8],
    index=df.columns,
    name="8/6/2015"
)

# 等价于旧版 df.append(new_row),默认保留所有原索引,允许索引重复
df = pd.concat([df, new_row.to_frame().T])

关键注意事项

  • 必须调用to_frame().T将Series转换为单行DataFrame,直接传入Series会被concat识别为列对象,导致生成错误的新列
  • 不需要额外设置索引去重逻辑,concat默认保留所有拼接对象的原始索引,完全支持重复日期索引的需求,输出结果和你给出的示例结构完全一致
  • 如果需要批量追加多行,将所有待追加的Series统一转为DataFrame后,一次性传入concat的列表参数即可,性能远高于逐行追加

关于弃用append的说明

弃用append并非刻意移除实用功能,核心原因是旧append本质是concat的轻量化封装,每次调用都会生成全新的DataFrame副本,很多新手会在循环中逐行调用append,导致代码性能比批量拼接低数十到数百倍。移除该方法后可以引导用户使用更规范的concat接口,明确感知拼接操作的性能成本,减少API误用导致的效率问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 14:39:08