疑问:Pandas是否缺少添加行专用方法?append()已弃用
Pandas 添加行的替代方案(append()弃用后)
你已掌握的方法回顾
- 创建单行DataFrame后合并:
new_row = pd.DataFrame({'col1': [val1], 'col2': [val2]}) df = pd.concat([df, new_row], ignore_index=True) - 使用
loc添加行:df.loc[len(df)] = {'col1': val1, 'col2': val2}
你可能遗漏的其他方法
- 简化版
pd.concat写法:无需手动构建单行DataFrame,直接用字典生成:df = pd.concat([df, pd.DataFrame.from_dict([{'col1': val1, 'col3': val3}])], ignore_index=True) loc指定列赋值:你觉得loc不方便选列其实是误解,直接指定目标列即可,未指定的列会自动填充NaN:df.loc[len(df), ['col1', 'col3']] = [val1, val3]- 弃用但短期可用的
append:官方弃用是因为大数据量下效率低,小数据场景仍可临时使用:df = df.append({'col1': val1, 'col2': val2}, ignore_index=True)
为什么Pandas没有专用行插入方法?
Pandas的DataFrame基于列存储,单行插入需要修改整个数据结构,效率远低于列操作。官方更推荐先批量收集行数据,最后统一转成DataFrame的方式,而非提供单行插入的专用方法——这也是append()被弃用的核心原因。
你自己编写的自定义方法完全可以继续使用,尤其在需要频繁指定列添加行的场景下,实用性很高。
内容的提问来源于stack exchange,提问作者Dan Murphy
相关产品推荐
相关产品推荐

