Python 价值计数

Python 价值计数,python,csv,count,Python,Csv,Count,我需要计算csv文件中一行出现的次数。我使用的是一个文件,它可以统计在一个特定的月份里,每个人犯下了多少罪行。有20个节拍[1A、1B、1C……]等等。我已经使用这个设置来计算一个范围内的整数,但由于某种原因,我挂断了尝试让它计算是否包含数字和字母。有什么建议吗 import csv #import matplotlib.pyplot as plt filename = "crime.csv" with open(filename) as file: data_f

我需要计算csv文件中一行出现的次数。我使用的是一个文件,它可以统计在一个特定的月份里,每个人犯下了多少罪行。有20个节拍[1A、1B、1C……]等等。我已经使用这个设置来计算一个范围内的整数,但由于某种原因,我挂断了尝试让它计算是否包含数字和字母。有什么建议吗

import csv
#import matplotlib.pyplot as plt

filename = "crime.csv"

with open(filename) as file:
    data_from_file = csv.reader(file)
    header_row = next(data_from_file)
    
    ucr_ncic_code = [0,0,0,0,0,0,0,0,0]
    for row in data_from_file:
        crime = int(float(row[6]))
        if crime in range(0,999):
            ucr_ncic_code[0] = ucr_ncic_code[0] +1
        elif crime in range(1000,1999):
            ucr_ncic_code[1] = ucr_ncic_code[1] +1
        elif crime in range(2000,2999):
            ucr_ncic_code[2] = ucr_ncic_code[2] +1
        elif crime in range(3000,3999):
            ucr_ncic_code[3] = ucr_ncic_code[3] +1
        elif crime in range(4000,4999):
            ucr_ncic_code[4] = ucr_ncic_code[4] +1
        elif crime in range(5000,5999):
            ucr_ncic_code[5] = ucr_ncic_code[5] +1
        elif crime in range(6000,6999):
            ucr_ncic_code[6] = ucr_ncic_code[6] +1
        elif crime in range(7000,7999):
            ucr_ncic_code[7] = ucr_ncic_code[7] +1
        elif crime in range(8000,8999):
            ucr_ncic_code[8] = ucr_ncic_code[8] +1

with open(filename) as file:
    data_from_file = csv.reader(file)
    header_row = next(data_from_file)
        
    district = [0,0,0,0,0,0,0]
    for row in data_from_file:
        D = int(float(row[2]))
        if D in range(2):
            district[0] = district[0] +1
        elif D in range(3):
            district[1] = district[1] +1
        elif D in range(4):
            district[2] = district[2] +1
        elif D in range(5):
            district[3] = district[3] +1
        elif D in range(6):
            district[4] = district[4] +1
        elif D in range(7):
            district[5] = district[5] +1
        
with open(filename) as file:
    data_from_file = csv.reader(file)
    header_row = next(data_from_file) 
       
    beat = [0,0,0,0,0,0,0]
    for row in data_from_file:
        B = str(row[3])
        if B == "1A":
            beat[0] = beat[0] +1
        elif B in range(3):
            beat[1] = beat[1] +1
        elif B in range(4):
            beat[2] = beat[2] +1
        elif B in range(5):
            beat[3] = beat[3] +1
        elif B in range(6):
            beat[4] = beat[4] +1
        elif B in range(7):
            beat[5] = beat[5] +1       

def option1():
    print("\nNCIC Codes")
    print("    0-999:",ucr_ncic_code[0])
    print("1000-1999:",ucr_ncic_code[1])
    print("2000-2999:",ucr_ncic_code[2])
    print("3000-3999:",ucr_ncic_code[3])
    print("4000-4999:",ucr_ncic_code[4])
    print("5000-5999:",ucr_ncic_code[5])
    print("6000-6999:",ucr_ncic_code[6])
    print("7000-7999:",ucr_ncic_code[7])
    print("8000-8999:",ucr_ncic_code[8])
    print("\nDistricts")
    print("District 1:",district[0])
    print("District 2:",district[1])
    print("District 3:",district[2])
    print("District 4:",district[3])
    print("District 5:",district[4])
    print("District 6:",district[5])
    print("\nBeats")
    print("Beat 1A:",beat[0])
    


def main():
    cont = "y"
    
    while(cont =="y"):
        print("\n\t\tMENU")
        print("1: Display Crime Report Data")
        print("2: Crime Statistics by Specific Beat")
        print("3: Compare Beat Statistics")
        print("4: Quit")
        print("\nSelect an option above:")
        user_input = input("---> ")

        if (user_input == "1"):
            option1()
            #elif (user_input == "2"):
           
        elif (user_input == "4"):
            break
            

main()

我明白了;我收到的csv在节拍1A后有额外的空格,因此我必须重新打印该数据。

如果打印出
,其内容是否符合您的预期?结果为0,有数百个结果。因此,这至少解释了为什么测试总是失败。如果你看到的不是你正在读取的文件中的数据,那么你的文件读取代码肯定有问题;我不明白你的意思,它失败了,即使结果是0。我已经上传了我所有的代码,我必须显示,以防我的其他东西可能会导致问题。我试着上传我的csv,但我也没有找到一种方法。我感谢你的帮助。