下面有很多代码可以向您展示我完成这项任务所必须使用的技能水平。仅限初学者技术。
def get_monthly_averages(original_list):
#print(original_list)
daily_averages_list = [ ]
product_vol_close = [ ] # used for numerator
monthly_averages_numerator_list = [ ]
for i in range (0, len(original_list)):
month_list = original_list[i][0][0:7] #Cutting day out of the date leaving Y-M
volume_str = float(original_list[i][5]) #V
adj_close_str = float(original_list[i][6]) #C
daily_averages_sublists = [month_list,volume_str,adj_close_str] #[Date,V,C]
daily_averages_list.append(daily_averages_sublists)
for i in range (0, len(daily_averages_list)): #Attempt at operation
vol_close = daily_averages_list[i][1]*daily_averages_list[i][2]
month_help = daily_averages_list[i][0]
product_vol_sublists = [month_help,vol_close]
product_vol_close.append(product_vol_sublists)
print(product_vol_close)
for i in range (0, len(product_vol_close)): #<-------TROUBLE STARTS
for product_vol_close[i][0]==product_vol_close[i][0]: #When the month is the same
monthly_averages_numerator = product_vol_close[i][1]+product_vol_close[i][1]
# monthly_averages_numerator = sum(product_vol_close[i][1]) #tried both
month_assn = product_vol_close[i][0]
numerator_list_sublists = [month_assn,monthly_averages_numerator]
monthly_averages_numerator_list.append(numerator_list_sublists)
print(monthly_averages_numerator_list)
原始清单的形式为:
[['2004-08-30', '105.28', '105.49', '102.01', '102.01', '2601000', '102.01'],
['2004-08-27', '108.10', '108.62', '105.69', '106.15', '3109000', '106.15'],
['2004-08-26', '104.95', '107.95', '104.66', '107.91', '3551000', '107.91'],
['2004-08-25', '104.96', '108.00', '103.88', '106.00', '4598900', '106.00'],
['2004-08-24', '111.24', '111.60', '103.57', '104.87', '7631300', '104.87'],
['2004-08-23', '110.75', '113.48', '109.05', '109.40', '9137200', '109.40'],
['2004-08-20', '101.01', '109.08', '100.50', '108.31', '11428600', '108.31'],
['2004-08-19', '100.00', '104.06', '95.96', '100.34', '22351900', '100.34']]
第 0 个索引是日期,第 5 个是 V,第 6 个是 C。
我需要为每个月单独执行以下操作,最后有一个包含两个元素的元组;0 是月份-年份,1 是“平均价格”,如下所示。我试图最终从原始列表中的每个列表中获取第 5 个和第 6 个值,并执行如下操作...(我需要为我的课程使用初学者技术...谢谢您的理解)
平均价格 = (V1* C1 + V2 * C2 +...+ Vn * Cn)/(V1 + V2 +...+ Vn)
(V=列表中的每个第 5 个元素 C=列表中的每个第 6 个元素)
我的问题是仅将上述任务执行到一个月而不是整个列表,然后得到如下结果,
[('month1',average_price),('month2',average_price),...]
我编了
for i in range (0, len(product_vol_close)): #<-------TROUBLE STARTS
for product_vol_close[i][0]==product_vol_close[i][0]:
在同一月份和同一年将它们组合在一起。
尝试并展示我试图让它做的事情。我找不到任何关于如何让它按照我想要的方式工作的答案。
如果还有不明白的地方请评论!再次感谢您对此事的耐心、理解和帮助!
我完全迷路了。