gpt4 book ai didi

python - 在列表上迭代函数,并附加返回值

转载 作者:太空宇宙 更新时间:2023-11-04 07:22:36 25 4
gpt4 key购买 nike

我有一个 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 的值。在键中。

我想有更好的方法可以做到这一点,但我仍然是这方面的新手。非常感谢任何建议

最佳答案

你可以使用辉煌pandas这类工作的图书馆:

from StringIO import StringIO
import pandas as pd

df = pd.read_csv(StringIO('your_data'),
delim_whitespace=True)

df.groupby('Ref').mean()

X Y
Ref
11 2.5 8.5
12 6.0 5.0
13 8.5 2.5

正如您在最后一行中看到的,您在问题中计算错误...

您同样可以要求 median, sum, max, etc..

关于python - 在列表上迭代函数,并附加返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14201190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com