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

ValueError:DataFrame真值模糊 循环将pandas列存入numpy数组报错如何解决

错误原因

你遇到的报错是因为cities列表存储的是DataFrame对象,循环中调用cities.index(i)时,该方法需要比较列表元素和当前迭代的DataFrame是否相等,而pandas的两个DataFrame做相等判断会返回逐元素的布尔矩阵,无法输出单个布尔值,因此触发真值模糊的错误。

解决方案

直接用enumerate同时遍历索引和对应的城市DataFrame,完全避开调用index方法的比较逻辑,同时提取Series的底层numpy数组再赋值,避免额外的索引对齐问题,修改后的代码如下:

cities = [perth, melbourne, brisbane]
rainfall = np.empty((len(perth), len(cities)))

for idx, city_df in enumerate(cities):
    rainfall[:, idx] = city_df.iloc[:,5].values

注意事项

  • 需提前校验所有城市DataFrame的行数和perth的行数一致,否则会触发形状不匹配的赋值错误
  • 后续新增城市仅需要在cities列表中追加对应的DataFrame对象即可,不需要修改循环逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:54:01