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

Python中DataFrame.loc与DataFrame.append添加行的差异对比

pandas中df.loc添加行与df.append的差异及适用场景

核心差异

  1. 废弃状态
    df.append()在pandas 1.4.0版本后已被标记为废弃(deprecated),官方明确推荐使用pd.concat()或df.loc的方式替代,这是两者最关键的区别。

  2. 操作特性

    • df.loc[len(df.index)] = new_object:属于**原地修改(in-place)**操作,直接在原DataFrame末尾添加新行,不会返回新对象,原数据会被直接改变。
    • df.append(new_object):属于非原地操作,不会修改原DataFrame,而是返回一个包含新行的全新DataFrame,原数据保持不变。
  3. 性能与批量操作表现

    • 单条添加时,两者性能差异不大;但如果是循环多次添加行,两种方式效率都很低——df.loc每次修改都会触发内存重分配,df.append每次生成新对象也会消耗资源。这种场景下官方建议先将所有新行整理成列表或小型DataFrame,再用pd.concat([原df, 新df])一次性合并,性能会大幅提升。
  4. 参数灵活性

    • df.append()支持直接传入单个行对象(如Series、字典)、多行组成的列表,甚至另一个DataFrame,还能通过ignore_index=True参数自动重置索引;
    • df.loc的方式需要手动指定索引位置(len(df.index)对应末尾),添加多行时需手动处理索引或循环操作,灵活性稍弱,但胜在直接修改原数据的特性。

适用场景

  • 若需直接修改原DataFrame,且仅添加少量单行,优先用df.loc[len(df.index)] = new_object;
  • 若需保留原DataFrame、不修改原数据,建议直接用pd.concat()替代df.append()(毕竟append已被废弃);
  • 批量添加行的场景,统一使用pd.concat()是最优选择,兼顾性能与规范性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 08:04:58