Python CSV:TypeError不支持的操作数“;“铁路超高总和表”;
我的代码正在返回:Python CSV:TypeError不支持的操作数“;“铁路超高总和表”;,python,string,list,csv,type-conversion,Python,String,List,Csv,Type Conversion,我的代码正在返回: Traceback (most recent call last): File "/Users/Justin/Desktop/Program 5/Weather_Program#5.py", line 111, in <module> month = sum(january)/10 TypeError: unsupported operand type(s) for +: 'int' and 'str' 代码: 导入csv 一月=[] 二月=[] 三
Traceback (most recent call last):
File "/Users/Justin/Desktop/Program 5/Weather_Program#5.py", line 111, in <module>
month = sum(january)/10
TypeError: unsupported operand type(s) for +: 'int' and 'str'
代码:
导入csv
一月=[]
二月=[]
三月=[]
四月=[]
五月=[]
六月=[]
七月=[]
八月=[]
九月=[]
十月=[]
11月=[]
十二月=[]
def read_单元(列、行):
“”“输入CSV文件的x&y坐标:返回单元格中的信息”“”
以open('deposition.csv','r')作为f:
读卡器=csv。读卡器(f)
y_计数=0
对于n in读卡器:
如果y_count==行:
单元格=n[列]
返回单元
y_计数+=1
暴风雨=0
行数=0
暴风雨<1时:
以open('deposition.csv','r')作为f:
日期=读取单元(0,行号)
rain=读取单元(1,行号)
如果日期==无:
暴风雨+=1
打破
elif日期[4:6]=“01”:
一月。追加(读取单元(1,行号))
行数+=1
elif日期[4:6]=“02”:
二月。追加(读取单元(1,行号))
行数+=1
elif日期[4:6]=“03”:
附加(读取单元(1,行号))
行数+=1
elif日期[4:6]=“04”:
april.追加(读取单元(1,行号))
行数+=1
elif日期[4:6]=“05”:
可追加(读取单元(1,行号))
行数+=1
elif日期[4:6]=“06”:
附加(读取单元(1,行号))
行数+=1
elif日期[4:6]=“07”:
七月。追加(读取单元(1,行号))
行数+=1
elif日期[4:6]=“08”:
八月。追加(读取单元(1,行号))
行数+=1
elif日期[4:6]=“09”:
九月。追加(读取单元(1,行号))
行数+=1
elif日期[4:6]=“10”:
10月。追加(读取单元(1,行号))
行数+=1
elif日期[4:6]=“11”:
11月。追加(读取单元(1,行号))
行数+=1
elif日期[4:6]=“12”:
12月。追加(读取单元(1,行号))
行数+=1
而1月份的“NA”:
一月。删除(“NA”)
而2月份的“NA”:
二月。删除(“NA”)
而3月份的“NA”:
三月。删除(“NA”)
而4月份的“NA”:
四月。删除(“NA”)
而5月份的“NA”:
可以删除(“NA”)
而6月份的“NA”:
六月。删除(“NA”)
而7月份的“NA”:
七月。删除(“NA”)
而8月份的“NA”:
八月。删除(“NA”)
而9月份的“NA”:
九月。删除(“NA”)
而10月份的“NA”:
10月。删除(“NA”)
而11月份的“NA”:
11月。删除(“NA”)
而12月份的“NA”:
12月。删除(“NA”)
一月=[一月i浮动(i)]
一月=总和(浮动(一月))/10
印刷(一月)
所以我认为这就是你的情况
>>> sum([0,'NA', 12.2, 0.3])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
即
这只是列表的一个示例。我正在处理5000多个单元格,所以这将不起作用。@Wakedude,它不必是文字列表-任何返回序列的表达式都可以。谢谢!这个给我修好了。非常感谢你的帮助。
import csv
january = []
february = []
march = []
april = []
may = []
june = []
july = []
august = []
september = []
october = []
november = []
december = []
def read_cell(column, row):
"""Input x & y coordinate for CSV file: Returns information in cell"""
with open('precipitation.csv', 'r') as f:
reader = csv.reader(f)
y_count = 0
for n in reader:
if y_count == row:
cell = n[column]
return cell
y_count += 1
stormy = 0
row_number = 0
while stormy < 1:
with open('precipitation.csv', 'r') as f:
date = read_cell(0,row_number)
rain = read_cell(1,row_number)
if date == None:
stormy += 1
break
elif date[4:6] == "01":
january.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == "02":
february.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == "03":
march.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == "04":
april.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == "05":
may.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == "06":
june.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == "07":
july.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == "08":
august.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == '09':
september.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == '10':
october.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == '11':
november.append(read_cell(1,row_number))
row_number += 1
elif date[4:6] == '12':
december.append(read_cell(1,row_number))
row_number += 1
while "NA" in january:
january.remove("NA")
while "NA" in february:
february.remove("NA")
while "NA" in march:
march.remove("NA")
while "NA" in april:
april.remove("NA")
while "NA" in may:
may.remove("NA")
while "NA" in june:
june.remove("NA")
while "NA" in july:
july.remove("NA")
while "NA" in august:
august.remove("NA")
while "NA" in september:
september.remove("NA")
while "NA" in october:
october.remove("NA")
while "NA" in november:
november.remove("NA")
while "NA" in december:
december.remove("NA")
january = [float(i) for i in january]
january = sum(float(january))/10
print(january)
>>> sum([0,'NA', 12.2, 0.3])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>> sum(x for x in [0,'NA', 12.2, 0.3] if x != 'NA')
12.5
month = sum(x for x in january if x != 'NA')/10