所以首先我的代码不能工作,因为我要乘以一个字符串,显然你不能这样做。然后,当打印平均值时,我将“a”改为一个浮点数。但是现在我得到了这个错误,我真的不确定。这段背景信息的代码是从一个CSV文件中提取数据,分数分为3列,我试图找到平均值。但是CSV文件都是字符串,不能在CSV文件中使用整数作为值。所以,任何帮助都将不胜感激。在
这是我的csv文件: 愈伤组织,2,0,2
这是我的代码:
with open("Class1.csv") as f:
columns = f.readline().strip().split(" ")
numRows = 0
sums = [1] * len(columns)
for line in f:
# Skip empty lines
if not line.strip():
continue
values = line.split(" ")
for i in range(1,len(values)):
sums[i] += int(values[i])
numRows += 1
for index, a in enumerate (str(sums)):
print (columns[index], 1.0 * float(a) / numRows)
看一下}相关。进一步查找,
float(a)
,我可以看到a
与{sums
是一个包含整数1的重复列表。所以:问题是你正在做
str(sums)
,它给你一个包含列表结构的字符串字符表示的字符串。。。包括用于指示列表的[]
。这就是为什么你会出错。在最后,请注意,虽然Python是动态类型化的,但它也是强类型化的。它不会对
'5' * 2
之类的东西进行隐式类型转换。在尝试乘法之前,必须将字符串值显式设置为整数。在相关问题 更多 >
编程相关推荐