python - 从文本python计算多重平均值

标签 python python-3.x pandas

我是Python新手,我想从文本文件中获取多个平均值。例如:

  • 63、1、1、145、233、1、2、150、0、2.3、3、0、6、0
  • 67、1、4、160、286、0、2、108、1、1.5、2、3、3、2
  • 67、1、4、120、229、0、2、129、1、2.6、2、2、7、1
  • 37、1、3、130、250、0、0、187、0、3.5、3、0、3、0
  • 41、0、2、130、204、0、2、172、0、1.4、1、0、3、0
  • 56、1、2、120、236、0、0、178、0、0.8、1、0、3、0

    就像我只想获得某些列的平均值,例如 1,4,5。

    import pandas as pd
    df = pd.read_csv('HDPV.txt', "rb")
    columns = f.readline().strip().split(" ")
    numRows = 0
    sums = [0] * len(columns)
    for line in f:
    if not line.strip():
    continue
    values = line.split(" ")
    for i in xrange(len(values)):
        sums[i] += int(values[i])
        numRows += 1
        for index, summedRowValue in enumerate(sums):
            print ('average age:'columns[0],summedRowValue / numRows)
            print ('average chol:'columns[3],summedRowValue / numRows)
            print ('bp:'columns[4],summedRowValue / numRows)
    

最佳答案

我不使用 pandas,但是使用 python 列表理解可以轻松解决这个问题:

import csv

with open('text.csv', newline='') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    rows = [[value.strip() for value in row] for row in reader]

    average_age_list = [float(row[0]) for row in rows]
    print ('average age: ' + str(sum(average_age_list) / float(len(average_age_list))))

    average_chol_list = [float(row[3]) for row in rows]
    print ('average chol: ' + str(sum(average_chol_list) / float(len(average_chol_list))))

    bp_list = [float(row[4]) for row in rows]
    print ('average age: ' + str(sum(bp_list) / float(len(bp_list))))

参见https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions

关于python - 从文本python计算多重平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36188073/

相关文章:

python - 查找python脚本所需的模块

python - 什么会导致 pdb.set_trace() 被忽略?

python - 模型 FlatPage 已经注册

python-3.x - Kotlin TCP套接字客户端无法正常工作的Python服务器

python - tkinter 窗口获取没有窗口顶部的 x、y、几何/坐标

python - 将百分比字符串转换为 pandas read_csv 中的 float

python - 使用 iterrows 更改行下面的所有值

python - 在 Kivy 的 StackLayout 中将小部件居中

python - 向 python 添加工作日

python - 根据其他列的值向前填充