gpt4 book ai didi

python - 类型错误 : Float() argument must be a string or a number when reading a list()

转载 作者:太空宇宙 更新时间:2023-11-03 16:35:10 26 4
gpt4 key购买 nike

我目前正在开发一个简单的演示,该演示读取包含两列的 Excel 文件,并将每列的数据提取到两个不同的列表中。

一切正常,但是当我尝试使用 matplotlib 绘制数据时,出现此错误。

TypeError: float() argument must be a string or a number

我知道错误是由第二个列表中的浮点值引起的,应该只是整数。我不明白的是如何防止它们在读入列表时变成 float 。

[text:u'Joe', text:u'Sam', text:u'Bobby', text:u'Tom', text:u'Jane']
[number:23.0, number:36.0, number:19.0, number:31.0, number:28.0]

我尝试在几个不同的地方进行类型转换,但总是遇到相同的错误。

TypeError: int() argument must be a string or a number, not 'Cell'

这是我用于此程序的方法

def bargraph(self, fileName, xlabel, title):
people = list()
dollars = list()
workbook = xlrd.open_workbook(fileName)
worksheet = workbook.sheet_by_index(0)

for row in range(worksheet.nrows):
people.append(worksheet.cell(row ,0))

for row in range(worksheet.nrows):
dollars.append(worksheet.cell(row, 1))


plt.bar(people, dollars, 1, color="blue")
plt.xlabel(xlabel)
plt.title(title)
plt.show()

最佳答案

发生此错误的原因是使用 worksheet.cell(row, idx) 检索 Cell 实例。因此,您正在创建一个单元格列表,而绘图库需要一个整数列表。

尝试使用 xlrd 库的 worksheet.cell_value 和 worksheet.cell_type 函数。例如尝试:

for row in range(worksheet.nrows):      
people.append(worksheet.cell_value(row ,0))

for row in range(worksheet.nrows):
dollars.append(worksheet.cell_value(row, 1))

关于python - 类型错误 : Float() argument must be a string or a number when reading a list(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37286844/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com