-1

これが私の機能です:

import numpy as np
def calc_mean():
    return np.loadtxt('GOOG.csv', skiprows=1, usecols=(6)).mean(axis=0)

これが私のものGOOG.csvです:

Date        Open    High    Low     Close   Volume     Adj Close # <-- column that I need
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
.............................................................
end of file:
.............................................................
2012-06-29  574.96  58013   572.20  580.07  2519500    580.07
2012-06-28  565.90  566.23  557.21  564.31  1920900    564.31
2012-06-27  567.70  573.99  566.02  569.30  1692300    569.30
2012-06-26  562.76  566.60  559.48  564.68  1350200    564.68
2012-06-25  567.33  568.09  557.35  560.70  1581600    560.70

実行すると、次のエラーが発生します。

  Traceback (most recent call last):
File "/home/misha/Documents/finance/finance.py", line 164, in <module>
  security_mean(file_list)
File "/home/misha/Documents/finance/finance.py", line 125, in security_mean
  return np.loadtxt('GOOG.csv', skiprows=1, usecols=(6)).mean(axis=0)
File "/usr/lib/python2.7/site-packages/numpy/lib/npyio.py", line 703, in loadtxt
  usecols = list(usecols)
TypeError: 'int' object is not iterable 

どうすれば修正できますか?

変更usecols=(6)した場合、usecols=(6,)またはusecols=([6])次のエラーが発生した場合:

Traceback (most recent call last):
  File "/home/misha/Documents/finance/finance.py", line 164, in <module>
    security_mean(file_list)
  File "/home/misha/Documents/finance/finance.py", line 125, in security_mean
    return np.loadtxt('GOOG.csv', skiprows=1, usecols=([6])).mean(axis=0)
  File "/usr/lib/python2.7/site-packages/numpy/lib/npyio.py", line 825, in loadtxt
    vals = [vals[i] for i in usecols]
IndexError: list index out of range

ありがとう。

注:のすべてのデータGOOG.csvstrings

4

2 に答える 2

8

引数はusecolsiterable でなければなりません:

usecols=(5,) # or [5]

は1 要素のタプルで(5)ないことに注意してください。に等しいだけ5です。(コンマ) は、,タプルを構築する上で重要です。

于 2013-09-29T08:37:33.313 に答える
1

Using(5)は、どのタイプのタプルまたは iterable も作成しません。(5,)引数でまたはのいずれかを使用する必要[5]がありますusecols

于 2013-09-29T08:39:24.030 に答える