我目前有.csv格式的以下文件:
Lee,6,3,4
John,5,6,8
Luke,2,3,8
Terry,4,7,6
以及用于读取文件并将其存储在列表中的以下代码,以便我可以按任何列进行排序。
import sys, csv, operator
from statistics import mean
reader = csv.reader(open("O:\\Class 1.csv"), delimiter=",")
sortedlist = sorted(reader, key=operator.itemgetter(1), reverse=True)
print(sortedlist)
我想要做的是为每个学生添加平均值并将其附加到列表中。它应该是这样的:
Lee,6,3,4,4.3
John,5,6,8,6.3
Luke,2,3,8,4.3
Terry,4,7,6,5.6
最简单的方法是什么?非常感谢先进的任何帮助。
答案 0 :(得分:0)
使用pandas.DataFrame
执行此操作很容易。所有的阅读,排序和附加平均值都可以通过3行代码完成。
df = pandas.read_csv('./xx.csv', header=None)
df.sort(1, ascending=False, inplace=True) # sort by column 1
df['avg'] = df.mean(axis=1)
之后,您可以打印df
,它应该是
0 1 2 3 avg
0 Lee 6 3 4 4.333333
1 John 5 6 8 6.333333
3 Terry 4 7 6 5.666667
2 Luke 2 3 8 4.333333
您可以将其写入新的csv文件。
df.to_csv('./yy.csv', header=False, index=False)