Easier way to do this?
breamoreboy at gmail.com
breamoreboy at gmail.com
Wed Oct 4 15:47:14 EDT 2017
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.
More information about the Python-list
mailing list