提问人:Jaiven McIntosh 提问时间:7/20/2023 最后编辑:BarmarJaiven McIntosh 更新时间:7/20/2023 访问量:52
只有一个长度的数组,但 Python 无法识别它是
only one length arrays but python not recognizing that it is
问:
昨天这段代码运行良好,但现在我收到此错误
只有 length-1 数组可以转换为 Python 标量。
import os
import re
import mouse
import time
import numpy
import pandas as pd
import keyboard as kb
import subprocess as sub
import pyautogui as pyAuto
from re import findall
from numpy import ndim
from pathlib import Path
from numpy import ndarray
stockNumber = xlEntries['StockNumber'] # Column of stock numbers
# While loop to find the row numbers and the the specification name and value of each of the desired row numbers
j = 0 # Reset count for while loop
while (j<fileCount):
rowNumbertemp = xlEntries[stockNumber == partNumbers[j]].index.to_numpy()
rowNumber.append(int(rowNumbertemp))
specNametemp = xlEntries.loc[rowNumber[j],"Pat's Proposed Change"]
specName.append(specNametemp)
specValuetemp = xlEntries.loc[rowNumber[j],"StringValue"]
specValue.append(specValuetemp)
j = j + 1
这是完整的错误和回溯:
Traceback (most recent call last):
File "c:\Users\jmcintosh\LIDT PRoject (copy)\LIDT Project\NEW EDMUND OPTICS LIDT\LIDT_MULTIPLE_FILE_TEST.py", line 59, in <module>
rowNumber.append(int(rowNumbertemp))
^^^^^^^^^^^^^^^^^^
TypeError: only length-1 arrays can be converted to Python scalars
还有一些我没有包含的其他代码,但它不适用于此。如果这个问题的格式不正确,我深表歉意,我是 SO 的新手。
我尝试删除 int,但它搞砸了我试图使用 los 解析 pandas.im 的信息,因为它已经工作了好几天,现在没有了。
答:
0赞
Ömer Sezer
7/20/2023
#1
错误消息“只有长度 1 的数组可以转换为 Python 标量”通常发生在您尝试使用需要标量值的 NumPy 数组时。
变量 rowNumbertemp 是一个 NumPy 数组,您正在尝试使用 int() 将其转换为整数。但是,不应将 NumPy 数组直接转换为整数,尤其是当它包含多个值时。
快速解决方案:在此方法中,for 循环遍历 rowNumbertemp 数组的每个元素,并将每个元素作为整数分别追加到 rowNumber 列表。
rowNumbertemp = xlEntries[stockNumber == partNumbers[j]].index.to_numpy()
for row in rowNumbertemp:
rowNumber.append(int(row))
您可以快速修复它。
评论
0赞
Jaiven McIntosh
7/20/2023
好的,试试这个谢谢
评论
xlEntries
rowNumbertemp
rowNumber
Syntax Error: invalid syntax