On Wednesday, October 4, 2017 at 8:29:26 PM UTC+1, 20/20 Lab wrote: > Looking for advice for what looks to me like clumsy code. > > I have a large csv (effectively garbage) dump. I have to pull out sales > information per employee and count them by price range. I've got my code > working, but I'm thinking there must be a more refined way of doing this. > > ---snippet of what I have--- > > EMP1 = [0,0] > EMP2 = [0,0] > EMP3 = [0,0] > > for line in (inputfile): > content = line.split(",") > if content[18] == "EMP1": > if float(content[24]) < 99.75: > EMP1[0] += 1 > elif float(content[24]) > 99.74: > EMP1[1] += 1 > if content[18] == "EMP2": > if float(content[24]) < 99.75: > EMP2[0] += 1 > elif float(content[24]) > 99.74: > EMP2[1] += 1 > if content[18] == "EMP3": > if float(content[24]) < 99.75: > EMP3[0] += 1 > elif float(content[24]) > 99.74: > EMP3[1] += 1 > > and repeat if statements for the rest of 25+ employees. I can make a > list of the employees, but I'd prefer to pull them from the csv, as our > turnover is rather high (however this is not important). I'm thinking > another "for employee in content[18]" should be there, but when I tried, > my numbers were incorrect. > > Any help / advice is appreciated, > > Matt
Use the csv module https://docs.python.org/3/library/csv.html to read the file with a Counter https://docs.python.org/3/library/collections.html#collections.Counter. I'm sorry but I'm too knackered to try writing the code for you :-( -- Kindest regards. Mark Lawrence. -- https://mail.python.org/mailman/listinfo/python-list