【问题标题】:Correlating arrays and nested for loop in Pandas (stock portfolio analysis)Pandas 中的关联数组和嵌套 for 循环(股票投资组合分析)
【发布时间】:2013-05-12 04:34:24
【问题描述】:

我正在尝试用 Python 创建一个程序,用户在其中输入一些股票代码和所需的日期范围;假设股票权重相等,输出将是该日期范围内投资组合的每日累积收益图。

到目前为止,这是我的输入块:

import datetime
import pandas
import numpy
import matplotlib.pyplot as plt
from matplotlib import pyplot
import csv
from pandas.io.data import DataReader

isValid = False

userInStart = raw_input("Enter Start Date mm/dd/yyyy: ") """start of date range"""
userInEnd = raw_input ("Enter End Date mm/dd/yyyy: ") """end of date range"""

StockCount = input ('Input the number of stocks in the porfolio: ')
StockArray = list() """an array of input stocks"""
Return = [[]] """an array of daily returns for each stock"""
CumulativeReturn = list() """an array of cumulative returns for each stock"""

处理块是:

for i in range(0,StockCount): 
   for j in range(1,len(StockArray[i]["Adj Close"])):
       Return[i].append (StockArray[i]["Adj Close"][j] - StockArray[i]["Adj Close"][j-1])

1) 如果我输入 1 只股票,到最后,我会得到一个返回数组,但没有日期。如何将返回数组与日期关联起来

2) 如果我输入了多只股票,则会出现索引超出范围错误。什么可能导致问题?

我们也非常感谢您对概念化解决方案的任何帮助。

谢谢

【问题讨论】:

    标签: python arrays pandas finance stocks


    【解决方案1】:

    如果没有看到程序的完整列表,就不可能回答问题 2。如果您仔细查看“索引超出范围”异常的堆栈跟踪,它应该会告诉您异常所在的行号被解雇了。从那里开始。

    关于问题 1,您应该考虑在您的应用程序中应用 OO 设计技术。

    例如,return 可以实现为这样的类

    class Return(object):
       def __init__(self, date, r):
          self.date = date
          self.r = r 
    

    通过这种方式,您可以将日期与返回值相关联。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-28
      • 1970-01-01
      • 2018-01-04
      • 1970-01-01
      • 2021-01-04
      • 1970-01-01
      相关资源
      最近更新 更多