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