python列表求平均数_python – 如何获得特定列表元素的平均值

我有以下部分输入文件(超过500行):

L1, a, b, 10, 20, pass,

L1, c, d, 11, 21, pass,

L1, e, f, 12, 22, pass,

L1, a, b, 13, 23, pass,

L1, e, f, 14, 34, pass,

我想得到重复的平均值,即输出如下:

(其中L1,a,b,11.5 =(10 13)/ 2,21.5 =(20 23)/ 2)

L1, a, b, 11.5, 21.5

L1, c, d, 11, 21

L1, e, f, 13, 28

我目前的初学者python代码如下 – 仍然努力更好地调整它

import csv

from collections import defaultdict

import numpy as np

dd = defaultdict(list)

with open("mean.csv") as input_file:

for row in csv.reader(input_file):

dd[tuple(row[:3])].append(float(row[3]))

dd[tuple(row[:3])].append(float(row[4]))

for k, v, m in dd.iteritems():

if len(v) > 1:

print (' '.join(k), np.mean(v), np.mean(m))

我得到的错误是:

Traceback (most recent call last):

File "average.py", line 11, in

for k, v, m in dd.iteritems():

ValueError: need more than 2 values to unpack

最佳答案 未经测试,但像这样的基础可以适用于其他列…因为这只是一个目前.

import csv

from collections import defaultdict

import numpy as np

dd = defaultdict(list)

with open('in.csv') as fin:

for row in csv.reader(fin):

dd[tuple(row[:3])].append(float(row[3]))

for k, v in dd.iteritems():

if len(v) > 1:

print ' '.join(k), np.mean(v)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值