def data_search(security, statistic):
"""takes in specific asset and desired statistic (e.g. 'Gross ER', 'Asset Class', etc),
returns the answer from the CME or Equity Ranking Template spreadsheet"""
securities = xlrd.open_workbook('Desktop\\CME.xlsx').sheet_by_index(1)
securities_array = securities.col_values(1, start_rowx = 1, end_rowx = securities.nrows)
desired_security_row = securities_array.index(security) + 1
statistics_array = securities.row_values(0, start_colx = 0, end_colx = securities.ncols)
statistic_index = statistics_array.index(statistic)
return securities.row(desired_security_row)[statistic_index].value
我使用python的xlrd来读取Excel电子表格来收集信息并形成不同资产的财务数据列表。 " CME"上面代码中引用的电子表格本质上是一个电子表格,其中包含大约500种不同的金融资产,其电子表格中的B列向下运行其股票代码/符号(例如,AAPL')。 x轴有一堆标题用于所需的统计数据,例如"总预期回报"和"收益"。我希望能够将特定的股票代码和所需的统计信息输入到该函数中,并返回该股票代码的统计信息。该代码目前使用xlrd查看B列并生成所有500种证券中的列表(例如[' AAPL',' SCHB'' DB',然后...])找到该安全性的索引,它是如何识别正确的行。然后,它会在电子表格中生成所有统计类型的列表(例如[' Gross Expected Return',' Yield'' Beta',...])并找到所需统计信息的索引。它将查看正确的行并返回正确索引的单元格中的任何值。
当我在一个代码列表上运行for循环调用此函数x次时,它似乎是非常低效的。我很想知道是否有任何想法以更快的方式执行此操作涉及或不涉及xlrd。