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

Pandas中append方法弃用后,用concat无法获相同结果的问题

解决DataFrame append弃用后的替代方案

原代码与警告信息

原代码:

import pandas as pd

my_columns = ['a', 'b','c', 'd']
df = pd.DataFrame(columns = my_columns)
df = df.append(pd.Series([10, 20, 30, 'n/a'], index = my_columns), ignore_index = True)

收到的警告:

FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version.

预期输出

a   b   c   d
0   10  20  30  n/a

替代方案

方案1:使用concat正确拼接

concat要求拼接对象为DataFrame类型,所以需要先将Series转为单行DataFrame,再执行拼接:

import pandas as pd

my_columns = ['a', 'b','c', 'd']
df = pd.DataFrame(columns = my_columns)
# 将Series转为单行DataFrame
new_row = pd.Series([10, 20, 30, 'n/a'], index=my_columns).to_frame().T
# 拼接并重置索引
df = pd.concat([df, new_row], ignore_index=True)
print(df)

方案2:直接构造DataFrame(更高效)

如果仅添加单行或少量行,直接用数据列表构造DataFrame是更简洁高效的方式:

import pandas as pd

my_columns = ['a', 'b','c', 'd']
# 直接传入行数据列表创建DataFrame
df = pd.DataFrame([[10, 20, 30, 'n/a']], columns=my_columns)
print(df)

补充说明

如果需要批量添加多行,建议先把所有行数据存入一个列表,最后一次性转换为DataFrame——避免多次调用concat(每次concat都会生成新的DataFrame对象,频繁操作会降低效率)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 00:10:16