40列×800行のCSVデータセットがあります。しかし、例として、次のように見えるとしましょう:
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 の値しか取得できません。キーで。
これを行うにはもっと良い方法があると思いますが、私はまだこのような初心者です。提案をお寄せいただきありがとうございます