2017-08-25 1 views
-3

Entschuldigen Sie meine Ignoranz hier, aber ich habe eine schwierige Zeit, Python zu tun, was ich tun will. Also im Grunde habe ich eine CSV-Datei, die National Football League (NFL) -Daten enthält, die vier Reihen enthält, die Position, Spielername, Gehalt und durchschnittliche Fantasy-Punkte ein Spiel (AFPG) sind. So wäre beispielsweise in der CSV-Datei Position (RB), Spielername (Le'Veon Bell) Gehalt (9800) AvgFantasyPoints (28.6). Was ich tun möchte, ist einen PlayersName auszuwählen, der mindestens 14 AFPG und weniger als 7000 Gehalt hat. Hier ist der Code, den ich so weit unten habe. Jede Hilfe wird geschätzt, danke.Python NFL Fantasy CSV

import csv 

out=open("NFL.csv", "rb") 
reader = csv.reader(out, delimiter = ",") 
data = csv.reader(out) 
data = [row for row in data] 

for row in data: 
    Position = row[0] 
    Name = row[1] 
    Salary = row[2] 
    Game_info = row[3] 
    Avg_points = row[4] 
    Players = (Name) 
    for field in Salary: 
     print(if Salary <= 7000) 

out.close() 
+3

Könnten Sie den Inhalt der CSV zur Verfügung stellen Datei? – stamaimer

+0

als @stamaimer sagte, posten Sie Ihre CSV-Datei und vielleicht sehen Sie sich kalt [pandas] (https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html#pandas.read_csv) Modul an Arbeit mit CSV-Dateien –

Antwort

0

Sie können dies versuchen:

import csv 

data = csv.DictReader(open('filename.csv')) 

players = [i['Name'] for i in data if i['Salary'] < 7000 and i['Ave_points'] >= 14] 

Wenn Sie Datei-Header in der Form nicht Position,Name,Salary,Game_pts,Ave_pts haben, können Sie collections.namedtuple verwenden können:

from collections import namedtuple 

stats = namedtuple("stats", "position, name, salary, gamepts, avepts") 

data = map(stats._make, csv.reader(open("filename.txt"))) 

new_data = [i.name for i in data if i.salary > 7000 and i.avepts >= 14]