[英]Performing calculations on a tab-delimited file
我仍在学习Python,但仍然不知道如何使用数组。
我想读取一个制表符分隔的文件,例如(但在我的情况下,我将有约400行):
Col1 Col2
0.0001 0.6
0.0001 0.5
0.000006 0.8
0.0001 0.0003
0.002 1
0.002 3
我想得到以下输出:
Col1 Col2
0.0001 0.36676667
0.000006 0.8
0.002 2
所以我想在Col1中保持相同的值,但取Col2中的值的平均值,该平均值对应于Col1中的相同值。
我可以使用读取数组:
arr = np.genfromtxt('test.csv', dtype=None, delimiter='\t', skiprows=1)
但我不知道如何进行这些操作以及如何使用新生成的数据制作新文件。
非常感谢您的帮助!
使用collections.defaultdict
和list
作为默认参数。
将第一列中的值作为键,然后附加第二个值。
import csv
from collections import defaultdict
# Gather the data from the CSV file
d = defaultdict(list)
with open('data.csv', 'r') as csvfile:
reader = csv.reader(csvfile, delimiter='\t')
for row in reader:
d[float(row[0])].append(float(row[1]))
# Print the mean.
for k in d.keys():
print k, sum(d[k])/len(d[k])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.