我有一个 CSV 数据集,40 列乘 800 行。但作为一个例子,让我们说它看起来像这样:
Ref X Y
11 1 10
11 2 9
11 3 8
11 4 7
12 5 6
12 6 5
12 7 4
13 8 3
13 9 2
您将如何定义一个返回每个 Ref 的平均 X 和 Y 值列表的函数?即产生类似的东西:
Ref_list = [11,12,13]
Av_X = [2.5,6,12.5]
我怀疑这是处理它的最佳方法,但我编写了以下代码:
my_data = genfromtxt('somedata.csv', delimiter=',',skiprows=1)
X=[]
for i in my_data:
X.append(i[0])
counter=collections.Counter(X)
keys=np.sort((counter.keys())) #find and sort ref key values
def getdata():
X , Y = [], []
for i in my_data:
if i[0] == refs:
X.append(i[1])
Y.append(i[2])
AV_X=np.average(X)
AV_Y=np.average(X)
return AV_X, AV_Y
for refs in keys: # run function over key range
AV_X, AV_Y = getdata()
在这里我卡住了,我试图在 ref no 的范围内迭代函数。(键)并附加返回的值。但除了错误之外,我只能获取最后一个 Ref 的值。在键中。
我想有更好的方法可以做到这一点,但我仍然是这个东西的新手。非常感谢您的任何建议