【发布时间】:2016-11-30 21:47:26
【问题描述】:
我的字典结构如下:
stockData = {
'AAPL': {
'beta': 1.01833975315094,
'company_name': 'Apple',
'dividend': 1.9341673320912078,
'total':300},
'GOOG': {
'beta': 1.01833975315094,
'company_name': 'Apple',
'dividend': 1.9341673320912078,
'total':300}
}
这是我赋值的区域:
for row in range(2, sheet.max_row + 1):
# Each row in the spreadsheet has data for one census tract.
company_name = sheet['A' + str(row)].value
ticker = sheet['B' + str(row)].value
sector = sheet['C' + str(row)].value
shares = sheet['D' + str(row)].value
price = sheet['E' + str(row)].value
total = sheet['F' + str(row)].value
beta = sheet['G' + str(row)].value
dividend = sheet['H' + str(row)].value
number_stocks+=1
# Make sure the key for this ticker exists.
stockData.setdefault(ticker,{})
stockData[ticker]['company_name'] = company_name
stockData[ticker]['sector'] = sector
stockData[ticker]['shares'] = shares
stockData[ticker]['price'] = price
stockData[ticker]['total'] = total
stockData[ticker]['dividend'] = dividend
stockData[ticker]['beta'] = beta
我遇到了一个问题,我在字典上使用 for 循环进行迭代,以添加一个新值“百分比”,即“总数”除以所有股票的总数之和。
def get_portfolio_value(stocks,item):
portValue = 0
percentage = 0
for k, v in stocks.items():
portValue = portValue + v.get(item,0)
stockData[ticker]['percentage'] = stockData[ticker]['total']/portValue
print(portValue)
get_portfolio_value(stockData,'total')
问题是 get_portfolio_value 函数让我获得了投资组合的整个 portValue 总数,但是我试图将投资组合百分比添加到每只股票的那条线工作不正常——这只是奇怪的只出现一只股票。有人可以建议吗?
【问题讨论】:
-
关注@jDo,
ticker来自哪里? -
@jDo 对不起,我没有包含我从 excel 文件中读取并分配值的顶部代码。那个单引号只是我在这里输入代码的一个错误。我刚刚编辑了我的帖子以包含价值分配。
-
有没有一种好方法也可以按“部门”对库存百分比求和?例如,要获取所有行业的列表以及该行业的总百分比......所有股票?
标签: python python-3.x dictionary