我正在尝试根据另一个基于财务行情清单的列表对财务数据列表进行排序。
我拥有的两个列表是元组列表,其中包含有关公司财务数据的信息。 prc_list
是具有元素形式为(company_ticker, price_dataframe)
的元组列表,而fin_list
是具有元素形式为(company_ticker, financial_dataframe, value)
的元组列表。在这里,“价格”仅指开盘/收盘价,“财务”指进行基本分析时通常会看到的信息(例如ROE,ROA等)
我正在做的是首先我拿fin_list
并根据特定的四分之一和键以降序对其进行排序。例如,如果我想按2013-Q3的ROE对所有公司进行排序,则第一家公司将显示2013年第三季度ROE值最高的公司的相关信息。
完成此操作后,我想对prc_list
进行排序,以使代码的顺序与fin_list
的顺序相匹配。
我的尝试如下:
prc_list = sorted(prc_list, key=(lambda x: fin_list[x][0]))
# Error -> "List indices must be integers or slices, not tuples."
tic_list = [fin_list[i][0] for i in range(len(fin_list))]
prc_list = sorted(prc_list, key=tic_list)
# Same error.
如何解决这个问题?
答案 0 :(得分:0)
那呢?
fin_list = [("ticker 1" , "price 1", 10),
("ticker 2" , "price 2", 0),
("ticker 3" , "price 3", 20),
("ticker 4" , "price 4", 14)]
# sort this list
fin_list_sorted = sorted(fin_list, key=lambda x: x[2])
print(fin_list_sorted)
# if you want to sort it in decreasing order
fin_list_sorted = sorted(fin_list, key=lambda x: -x[2])
print(fin_list_sorted)
# if you only want the attributes company_ticker and price_dataframe
prc_list = list(map(lambda x: x[0:2], fin_list_sorted))
print(prc_list)