这是我的文件格式。我试图在列上取平均值,但我收到错误,如下所示。任何人都可以给我一些建议吗?
文件格式为:
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: '-'
答案 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开始的整数。