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

Pandas查找Series中5的倍数位置时长度不匹配报错如何解决

Pandas查找Series中5的倍数位置的错误修复

错误原因

触发报错的核心原因是np.argwhere()接收Pandas布尔序列后,返回的是形状为(n,1)的二维Numpy数组,如果后续将该结果直接赋值给长度为9的Series结构,就会触发长度不匹配的报错;同时该返回结构也不符合我们需要的一维索引列表的使用需求。

修复方案

推荐两种可直接运行的正确实现:

  • 方案1:使用Pandas原生方法(适配Series结构,性能更优)
import pandas as pd
import numpy as np
num_series = pd.Series(np.random.randint(1, 10, 9))
print("Original Series:")
print(num_series)
# 筛选满足条件的元素后直接取索引
result = num_series[num_series % 5 == 0].index
print("Positions of numbers that are multiples of 5:")
print(result.tolist())
  • 方案2:保留Numpy写法的修复版本
import pandas as pd
import numpy as np
num_series = pd.Series(np.random.randint(1, 10, 9))
print("Original Series:")
print(num_series)
# 布尔序列转Numpy数组后传入argwhere,再拍平二维结果为一维
result = np.argwhere((num_series % 5 == 0).values).flatten()
print("Positions of numbers that are multiples of 5:")
print(result)

两种方案均可正确输出符合要求的索引位置,不会触发长度不匹配报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:30:01