你好,我正在尝试使用函数,如果通过一个excel单元的迭代。但是,我得到的错误‘w_s’对象不能解释为整数。我试图在“w_s”中搜索所有在10-11范围内的值。有人能建议我修改代码吗?
import openpyxl
import numpy
import os
os.system('cd c:\Code')
wb = openpyxl.load_workbook('SPLtest.xlsx')
turbine_data = wb.get_sheet_by_name('Turbinedata')
windspeed = wb.get_sheet_by_name('SPLvalues')
for row in range(2, windspeed.max_row+1):
w_s = windspeed['A' + str(row)].value
for value in range(w_s):
if value in numpy.arange(10.00,11.00,0.01) :
print('107')
else:
print('no')发布于 2017-11-18 19:49:09
问题是,当您从excel工作表中提取数据时,它们就会成为浮动数据。range函数只接受ints,因为有非整数指数是没有意义的.就像这样说吧
for value in range(int(w_s)):发布于 2017-11-18 19:55:32
您的脚本有很多问题,但是您想要的一个更改是np.linspace而不是np.arange,假设您想迭代一些类似于[10.00, 10.01, 10.02, ..., 10.98, 10.99, 11.00]的内容。
所以你想做的是:
if value in numpy.linspace(start=10,stop=11,num=101) :
print('107')
else:
print('no')np.linspace将在start和stop (包括在内)之间给出num线性行距值。
https://stackoverflow.com/questions/47370267
复制相似问题