You need to enable JavaScript to run this app. pandas DataFrame间拷贝末行值时使用append方法触发TypeError错误
优惠活动
大模型
产品
解决方案
定价
更多

pandas DataFrame间拷贝末行值时使用append方法触发TypeError错误

报错原因

你调用append时传入的是df_old.iloc[-1, df_old.columns.get_loc("low")],该语句返回的是单个numpy.float64类型的数值,而pandas的append方法仅支持拼接Series、DataFrame类型的对象,因此触发类型错误。
另外补充说明:pandas 1.4.0及以上版本已经正式弃用DataFrame.append()方法,更推荐使用兼容性更强的pd.concat()实现数据拼接。

解决方案

根据你要把df_old末行low列的值存入df_new的需求,可选用以下两种写法:

  • 写法1:适配仍支持append的旧版本pandas
# 取出low列的目标值
low_value = df_old.iloc[-1]["low"]
# 转成带列名的Series后再拼接,ignore_index=True自动重置行索引
df_new = df_new.append(pd.Series({"low": low_value}), ignore_index=True)
  • 写法2:适配所有pandas版本的官方推荐写法
# 取出low列的目标值
low_value = df_old.iloc[-1]["low"]
# 把单条数据转为DataFrame后用concat拼接
new_row = pd.DataFrame({"low": [low_value]})
df_new = pd.concat([df_new, new_row], ignore_index=True)

注意:

  1. 如果df_new是新建的空表,建议初始化时就指定列名,避免拼接时列不匹配:df_new = pd.DataFrame(columns=["low"])
  2. 如果df_new包含多列,可在构造Series/DataFrame时补充对应字段的值,未指定的字段拼接后会默认填充NaN。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 18:24:00