2017-08-25 12 views
-3

ここで私の無知を言い訳にしますが、私はPythonに自分がしたいことをするのは難しい時です。したがって、基本的には、ポジション、PlayerName、給与、平均ファンタジーポイントゲーム(AFPG)の4つの行を含むナショナルフットボールリーグ(NFL)データを含むCSVファイルがあります。たとえば、CSVファイルのように見えるのは、Position(RB)、PlayerName(Le'Veon Bell)Salary(9800)AvgFantasyPoints(28.6)です。私がやりたいことは、最低14人のAFPGを平均し7000人の給与よりも少ない選手名を選ぶことです。ここではこれまでのコードを示します。どんな助けでも感謝しています。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

あなたはcsvファイルの内容を提供することができファイル? – stamaimer

+0

@stamaimerと言って、csvファイルを投稿し、おそらくあなたは[pandas](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html#pandas.read_csv)モジュールをcsvファイルで作業する –

答えて

0

あなたはこの試みることができます:あなたは、フォームPosition,Name,Salary,Game_pts,Ave_ptsでファイルヘッダを持っていない場合、あなたはcollections.namedtupleを使用することができます

import csv 

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

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

を:

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]