我試圖定義,計算平均日收益爲每一個安全的程序:用數組計算numpy.mean?
import csv
import numpy as np
def security_mean(com):
CSV = csv.reader(open("my_file.csv","rb"))
foo = False
old = 0
new = 0
mean = []
for row in CSV:
try:
if foo == True:
old = float(row[-1])
x = (new - old)/old
mean.append(x)
new = float(row[-1])
foo = True
else:
new = float(row[-1])
foo = True
except ValueError:
string = row[-1]
continue
value = np.mean(mean)
print string + ' mean: ' + str(value)
這裏是my_file.csv
:
Date Open High Low Close Volume Adj Close
2013-09-27 874.82 877.52 871.31 876.39 1258800 876.39
2013-09-26 878.3 882.75 875 878.17 1259900 878.17
2013-09-25 886.55 886.55 875.6 877.23 1649000 877.23
2013-09-24 886.5 890.1 881.4 886.84 1467000 886.84
2013-09-23 896.15 901.59 885.2 886.5 1777400 886.5
2013-09-20 898.39 904.13 895.62 903.11 4345300 903.11
2013-09-19 905.99 905.99 895.4 898.39 1597900 898.39
2013-09-18 886.35 903.97 883.07 903.32 1934700 903.32
2013-09-17 887.41 888.39 881 886.11 1259400 886.11
2013-09-16 896.2 897 884.87 887.76 1336500 887.76
我可以讓我的小功能,使用數組?怎麼樣?
謝謝。
注:日收益公式:(X - Y)/ Y或(X/Y) - 1;其中x =今天調近,且y =昨天ADJ接近
的數字越大則返回我一個錯誤發生:類型錯誤:不支持的操作數類型爲 - :'list'和'list' –
只做了一個編輯以將列表轉換爲數組。 –
新錯誤:ValueError:無法將字符串轉換爲float:Adj關閉 –