【发布时间】:2017-12-31 02:33:19
【问题描述】:
我有一个大的 .txt 文件,我想将每一列作为一个列表读取。该文件有 9 列分隔的浮点数,第一行(几千)是:
0.49406565E-323 0.29532530E+003 0.89244837E+001 0.20901651E-002 0.34989878E+001 0.11594090E+000 0.34025716E-001 0.33723126E+001 0.27954433E+000 0.80757378E-001 0.50813056E+001
我正在像这样阅读我的文件:
colnames = ['weight', 'likelihood', 'A_0', 'w_0', 'p_0', 'A_1', 'w_1', 'p_1', 'A_2', 'w_2', 'p_2']
data = pandas.read_csv('data.txt', names=colnames)
weights = data.weight.tolist()
A_0 = data.A_0.tolist()
第一列是权重,其余是参数,我想对所有参数的权重进行加权平均计算。
但如果我打印weights,例如,它会返回整个文件,而weights[0]是文件的第一行。
为了完成,我的加权平均值如下:
weighted_A_0 = numpy.average(A_0, weights=weights)
也许 pandas 和 numpy 有更简洁的方法?
谢谢!
【问题讨论】:
标签: python list pandas csv weighted-average