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

关于Pandas中frame.append方法弃用警告的代码修改求助

解决Pandas DataFrame.append()弃用警告问题

你遇到的警告是因为DataFrame.append()方法已被标记为弃用,后续Pandas版本会彻底移除该方法,官方明确推荐使用pd.concat()替代。

修改后的代码

替换循环中逐次append的逻辑,改为先收集所有生成的布尔Series到列表,再一次性用pd.concat合并,既解决警告,又能提升代码性能(避免多次创建新DataFrame对象):

def gettrigger(self):
    masks = []
    for i in range(self.lags + 1):
        mask = (self.df['%K'].shift(i) < 20 ) & (self.df['%D'].shift(i) < 20)
        masks.append(mask)
    dfx = pd.concat(masks, axis=1, ignore_index=True)
    return dfx.sum(axis=0)

更简洁的写法(列表推导式)

可以用列表推导式简化循环部分,逻辑完全一致:

def gettrigger(self):
    masks = [(self.df['%K'].shift(i) < 20) & (self.df['%D'].shift(i) < 20) for i in range(self.lags + 1)]
    dfx = pd.concat(masks, axis=1, ignore_index=True)
    return dfx.sum(axis=0)

关键说明

  • pd.concat默认按行合并(axis=0),这里我们需要按列合并多个Series,所以指定axis=1
  • ignore_index=True会重置合并后的DataFrame列索引,和原代码append(ignore_index=True)的效果一致
  • 合并后求和逻辑保持不变,最终返回的结果和原代码完全相同

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:05:21