Python:对足球数据进行排序
为了说明我的观点,我的目标是收集5个足球赛季的5个文件,并将每个球员的数据相加,形成一个所有时间的领先者列表,即传球、冲刺、接球 每个球员可能没有在每个赛季都打过球,所以我似乎找不到一种方法来枚举每个文件,如果找到了球员,就添加统计数据,如果没有,就打印那一行。我发现3个文件以某种方式具有yds、td、fum列,其中2个几乎相反 如果不想在300行这样的非音速音乐中这样做,我是否应该将这两种不同的音乐组合起来并重新排列它们 我想我想要的是能够传递任意数量的文件并获得统计数据。唯一的问题是,我必须为每个类别制作一个程序 我绝对不是编程新手,但我对python还是相当陌生的,所以非常感谢您的帮助Python:对足球数据进行排序,python,sorting,statistics,Python,Sorting,Statistics,为了说明我的观点,我的目标是收集5个足球赛季的5个文件,并将每个球员的数据相加,形成一个所有时间的领先者列表,即传球、冲刺、接球 每个球员可能没有在每个赛季都打过球,所以我似乎找不到一种方法来枚举每个文件,如果找到了球员,就添加统计数据,如果没有,就打印那一行。我发现3个文件以某种方式具有yds、td、fum列,其中2个几乎相反 如果不想在300行这样的非音速音乐中这样做,我是否应该将这两种不同的音乐组合起来并重新排列它们 我想我想要的是能够传递任意数量的文件并获得统计数据。唯一的问题是,我必须
lines4 = [re.split("\s+", line4) for line4 in file4]
lines5 = file5.readlines()
for i,line4 in enumerate(lines4):
name = line4[0:-7]
name = " ".join(name)
name = re.split(",", name)
name = name[0]
str(name)
stats4 = line4[-6:-1]
if re.search(r"^%s"%name, lines5[i]):
line5 = re.split(r"\s+", lines5[i])
stats5 = line5[-6:-1]
yds = float(stats4[0]) + float(stats5[0])
td = int(stats4[1]) + float(stats5[1])
car = int(stats4[2]) + float(stats5[2])
fmb = int(stats4[3]) + float(stats5[3])
avg = float(stats4[4]) + float(stats5[4])
else:
yds = float(stats4[0])
td = int(stats4[1])
car = int(stats4[2])
fmb = int(stats4[3])
avg = float(stats4[4])
if len(str(name)) < 8:
newline = str(name) + "\t\t\t\t" + str(yds) + "\t\t" + str(td) + "\t\t" + str(car) + "\t\t" + str(fmb) + "\t\t" + str(avg) + "\n"
elif len(str(name)) > 14:
newline = str(name) + "\t\t\t" + str(yds) + "\t\t" + str(td) + "\t\t" + str(car) + "\t\t" + str(fmb) + "\t\t" + str(avg) + "\n"
else:
newline = str(name) + "\t\t\t" + str(yds) + "\t\t" + str(td) + "\t\t" + str(car) + "\t\t" + str(fmb) + "\t\t" + str(avg) + "\n"
filettl.write(newline)
file4.close()
file5.close()
filettl.close()
样本输入:
文件4
49erswag,零纽约喷气机14 0 3 0 4.7
野兽海滩,新英格兰爱国者队23 0 7 0 3.3
一个时髦的家伙2,无效的圣地亚哥充电器154 1 29 2 5.3
ACIDRUST,空纽约喷气机4 0 1 0 4
Aj dahitman,亚特兰大猎鹰队1898 19 227 2 8.4
阿尔迪兹尔,R新奥尔良圣徒队45 0 10 0 4.5
达拉斯牛仔队58 0 13 2 4.5
43分,纽约喷气机21414814.5
阿亚拉2012xTCU,纽约巨人队19505713.4
B O R Nx 25,新秀费城老鹰队31 0 13 1 2.4
文件5
一个有毒的taz,ECU巴尔的摩乌鸦307 4 44 7
AbNL Boss,R迈阿密海豚队509 4 174 2.9
休斯顿德克萨斯州阿菲肖尔19003525.4
阿吉达杀手,巴尔的摩乌鸦1283 19 228 6 5.6
allen5422,空卡罗莱纳黑豹112 2 18 0 6.2
Allxdayxapx,R迈阿密海豚264 1 76 2 3.5
阿尔哈尼克,R旧金山49人51,1,10,1,5.1
Aura Reflexx,ECU休斯顿德克萨斯215 140 0 5.4
唤醒野兽,亚特兰大猎鹰队-50 4 1-1.3
AX24,。迈阿密海豚队-3 0 2 1-1.5
Ayala2012xTCU,匹兹堡钢铁工人队,零568 4 173 1 3.3
巴尔克霍克斯,R新英格兰爱国者队22114724.7
BANG FIGHTY007,纽约巨人983 6 171 3 5.7发布您的csv文件的小样本?模式。据我所知,您可以使用默认的dict并将文件中的每条记录附加到与特定播放器相关联的列表中:stats[player_name]。appendstat其中stats=defaultdictlist刚刚用一些示例数据更新您的文件是否有定义各个字段及其顺序的标题或单独的字典文件?如果您的数据总是没有标题,并且变量的顺序可以更改,那么问题就更难了。如果您有标题,那么csv.DictReader就是您所需要的。文件确实有标题。我只是为了一致性而省略了它们,因为有些是其他顺序的。好吧,不要这样做。按原样放置数据。