Python 如何获得csv文件中两列的平均值
我有一个csv文件,有两列Python 如何获得csv文件中两列的平均值,python,Python,我有一个csv文件,有两列 rw1, 24 rw2, 34 rw3, 56 rw1, 78 rw2, 56 rw2, 45 rw2, 64 rw3, 32 rw1, 28 现在我想要一个average.py文件,它分别计算所有rw1、rw2和rw3的平均值,并将其写入average.txt文件 rw1 - average value, rw2 - average value, rw3 - average value 给定读取csv并将其转换为元组。然后对它们进行排序,以便在分组中使用 im
rw1, 24
rw2, 34
rw3, 56
rw1, 78
rw2, 56
rw2, 45
rw2, 64
rw3, 32
rw1, 28
现在我想要一个average.py文件,它分别计算所有rw1、rw2和rw3的平均值,并将其写入average.txt文件
rw1 - average value,
rw2 - average value,
rw3 - average value
给定读取csv并将其转换为元组。然后对它们进行排序,以便在分组中使用
import itertools
import csv
fileLocation = 'newslot.csv'
with open(fileLocation,'rb') as f:
r = csv.reader(f)
lis=sorted([(i[0],i[1]) for i in r])
for k,g in itertools.groupby(lis,key=lambda x:x[0]):
g=list(g)
print k,sum(int(i[1]) for i in g)/len(g)
输出
对于,它有点短:
import pandas as pd
df = pd.read_csv(file, header=None)
In [1]: df
Out[1]:
0 1
0 rw1 24
1 rw2 34
2 rw3 56
3 rw1 78
4 rw2 56
5 rw2 45
6 rw2 64
7 rw3 32
8 rw1 28
In [2]: df.groupby(df[0]).mean() # it groups on the column "0", and calculates the mean on the different group
Out[2]:
1
0
rw1 43.333333
rw2 49.750000
rw3 44.000000
希望这有帮助 请发布您解决问题的尝试,并解释为什么它是不够的。通过一个循环,你可以计算你的平均值……你把字符串转换成整数了吗?你最后错过了最后一个大括号,我想:)
rw1 - 43.3333,
rw2 - 49.75,
rw3 - 44
import pandas as pd
df = pd.read_csv(file, header=None)
In [1]: df
Out[1]:
0 1
0 rw1 24
1 rw2 34
2 rw3 56
3 rw1 78
4 rw2 56
5 rw2 45
6 rw2 64
7 rw3 32
8 rw1 28
In [2]: df.groupby(df[0]).mean() # it groups on the column "0", and calculates the mean on the different group
Out[2]:
1
0
rw1 43.333333
rw2 49.750000
rw3 44.000000