Python 用字符串和整数将平均值追加到列表

Python 用字符串和整数将平均值追加到列表,python,python-3.x,Python,Python 3.x,我目前有以下.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=operat

我目前有以下.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

最简单的方法是什么?非常感谢您在advanced中提供的帮助。

使用
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)

你试过什么了吗?您只需取除第一列以外的所有列的
平均值。切片就是这样做的:
row=['Lee','6','3','4'];打印(行[1:])
为您提供
['6','3','4']
。要将
mean
函数应用于此,必须首先将字符串转换为
int
。对于sortedlist中的子列表:x=list(map(int,sortedlist[1:[1:][1:])x=mean(x)sublist.append(x),以便上面的代码将平均值附加到列表的末尾。但是,它被困在[1:][1][1:]上。我是否可以为for循环添加一个简单的计数器以使其工作?用作为计数器的int变量x替换1不起作用。