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

Pandas for循环内条件判断出现真值模糊错误如何解决?

问题解决方法

报错原因

  • 你的for i in split_df是遍历split_df内的DataFrame切片元素,不是列表索引,直接用DataFrame和0做相等判断会返回布尔型DataFrame,if语句无法直接判断整个DataFrame的布尔值,因此触发该报错。
  • 后续代码中用split_df[i]取值的逻辑错误,i已经是切片本身,无需再从列表索引取值。
  • 额外注意:你初始化result为列表,后续又赋值为DataFrame,类型混用也会导致运行异常。

修正后可运行代码

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(100, size=(100,3)), columns=['Value1', 'Value2', 'Value3'])
# 生成步长为1、窗口大小12的滑窗切片
split_df = [df[i:i+12] for i in range(0, len(df))]

# 取第一个切片作为初始化结果
result = split_df[0].copy()
# 遍历后续所有切片,取最后一行追加到结果
for seg in split_df[1:]:
    last_row = seg.tail(1)
    # pandas 2.0+已弃用append方法,使用pd.concat完成拼接
    result = pd.concat([result, last_row], ignore_index=True)

简化实现

如果你的需求就是保留第一个完整窗口,后续每个窗口仅保留最后一行,完全不需要生成滑窗列表再循环拼接,一行即可实现等价逻辑:

result = pd.concat([df.head(12), df.loc[12:]], ignore_index=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:54:02