平均一列

时间:2017-06-12 00:15:28

标签: python python-3.x numpy average

这是我的文件格式。我试图在列上取平均值,但我收到错误,如下所示。任何人都可以给我一些建议吗?

文件格式为:

      0.000      -2953.187     -11363.859     -14317.047
    500.000      -3178.028     -11301.687     -14479.715
   1000.000      -2973.863     -11309.533     -14283.396
   1500.000      -2964.465     -11294.120     -14258.584
   2000.000      -3066.929     -11240.302     -14307.231
   2500.000      -3156.522     -11223.589     -14380.111
   3000.000      -3230.069     -11573.224     -14803.293

脚本是:

import numpy as np
file = open('energy_MM.xvg', 'r')

x = []

for line in file: 
    cols=line.split()[1]
    x.append(float(cols[0]))
numpy.mean(x)

错误是:

            Traceback (most recent call last):
            File "binding.py", line 10, in <module>
            x.append(float(cols[0]))
            ValueError: could not convert string to float: '-'

1 个答案:

答案 0 :(得分:0)

使用pandas:

import pandas as pd

df = pd.read_csv('energy_MM.xvg', sep="\s+", header=None)
df.mean()

将输出以下内容:

0     1500.000000
1    -3074.723286
2   -11329.473429
3   -14404.196714
dtype: float64

其中左列对应于文件中的列名,它们使用header=None选项分配给从0开始的整数。