当前位置: 首页 > 知识库问答 >
问题:

如何从多个函数中添加迭代

微生阳平
2023-03-14
outstanding_shares = get_class_i(f) + get_class_c(f) + get_class_i(f)

我有点笨。我试图理解如何一次又一次地将这些函数加在一起。相反,我只得到一个大的输出。其想法是在一个月内逐日获得流通股,最终结果是一个线图。

def get_class_a(d):
    cs = 0

    excel_file = 'nav/Catalyst_Exceed_Port_daily_nav' + d +'.xls'
    wb = xlrd.open_workbook(excel_file, logfile=open(os.devnull, 'w'))
    df = pd.read_excel(wb)

    for index, row in df.iterrows():

        if (row[0] == 'CATALYST/EXCEED DEFINED SHIELD FUND Class A'):
            cs = row[7]
    return cs

c = 0
for f in ('20200102', '20200103', '20200106', '20200107', '20200108', '20200109', '20200110',
          '20200113', '20200114', '20200115', '20200116', '20200117', '20200121', '20200122',
          '20200123', '20200124', '20200127', '20200128', '20200129', '20200130', '20200131'):
    #print(get_class_a(f), end=", ")

    print()
#########Grabbing Class C Shares Outstanding
def get_class_c(d):
    cs = 0

    excel_file = 'nav/Catalyst_Exceed_Port_daily_nav' + d +'.xls'
    wb = xlrd.open_workbook(excel_file, logfile=open(os.devnull, 'w'))
    df = pd.read_excel(wb)

    for index, row in df.iterrows():

        if (row[0] == 'CATALYST/EXCEED DEFINED SHIELD FUND Class C'):
            cs = row[7]
    return cs

c = 0
for f in ('20200102', '20200103', '20200106', '20200107', '20200108', '20200109', '20200110',
          '20200113', '20200114', '20200115', '20200116', '20200117', '20200121', '20200122',
          '20200123', '20200124', '20200127', '20200128', '20200129', '20200130', '20200131'):
    #print(get_class_c(f), end=", ")

    print()
#########Grabbing Class I Shares Outstanding
def get_class_i(d):
    cs = 0

    excel_file = 'nav/Catalyst_Exceed_Port_daily_nav' + d +'.xls'
    wb = xlrd.open_workbook(excel_file, logfile=open(os.devnull, 'w'))
    df = pd.read_excel(wb)

    for index, row in df.iterrows():

        if (row[0] == 'CATALYST/EXCEED DEFINED SHIELD FUND Class I'):
            cs = row[7]
    return cs

c = 0
for f in ('20200102', '20200103', '20200106', '20200107', '20200108', '20200109', '20200110',
          '20200113', '20200114', '20200115', '20200116', '20200117', '20200121', '20200122',
          '20200123', '20200124', '20200127', '20200128', '20200129', '20200130', '20200131'):
    #print(get_class_i(f), end=", ")
    print()



outstanding_shares = get_class_i(f) + get_class_c(f) + get_class_i(f)

print(outstanding_shares, end=", ")

共有1个答案

明利
2023-03-14

我会这样做:

import pandas

datestrings = [
    '20200102', '20200103', '20200106', '20200107', '20200108', '20200109', '20200110',
    '20200113', '20200114', '20200115', '20200116', '20200117', '20200121', '20200122',
    '20200123', '20200124', '20200127', '20200128', '20200129', '20200130', '20200131'
]

# compile all of the data
data = pandas.concat([
    pandas.read_excel('nav/Catalyst_Exceed_Port_daily_nav' + d +'.xls')
    for d in datestrings
], ignore_index=True)

# create all list of the valid values of the first column
classes_you_want = [
    f'CATALYST/EXCEED DEFINED SHIELD FUND Class {letter}'
    for letter in ('A', 'C', 'I')
]

# select all of the rows where the first column has a valid value,
# then select the 8th column, take the sum
outstanding_shares = data.loc[data.iloc[:, 0].isin(classes_you_want)].iloc[:, 7].sum()

 类似资料:
  • 我已经为我愚蠢的问题感到抱歉,但谷歌搜索没有成功 如何在箭头函数中添加多个参数。我想在下面的函数中添加一些属性“道具”。

  • 下面的代码是一个按钮的方法。 它总是给我一个错误。 如果我删除,那么它可以正常工作。 当我单击按钮时,如何使用POST方法,并移动到另一个活动? 错误:04-27 19:41:26.066 197 4-1974/com.opshun_test.opshun_test e/androidruntime:致命异常:main process:com.opshun_test.opshun_test,pid

  • 我有一个与docusign的开发人员帐户,能够上传一个单一的PDF文件,并签署这样。但根据我的要求,我需要在docusign内一次上传多个PDF文件,并相应地签名。我们目前使用的是docusign SOAP API,下面是示例访问URL:http://etplprojects.net/docusign_API/SOAP/这可能吗?请建议。

  • 我从http://kristiannissen.wordpress.com/2010/07/08/mysql-levenshtein/(archive.org链接),但是如何在MySQL中添加该功能呢?我正在使用XAMPP,我需要它在PHP中进行搜索。

  • 问题内容: 选项:使用元组 考虑下面这个简单的例子: 但是,随着返回值的数量增加,这很快就会成为问题。如果要返回四个或五个值怎么办?当然,你可以继续修改它们,但是很容易忘记哪个值在哪里。在任何想要接收它们的地方打开它们的包装也是很丑陋的。 选项:使用字典 下一步的逻辑步骤似乎是引入某种“记录符号”。在Python中,一种明显的方法是使用dict。 考虑以下: (请注意,y0,y1和y2只是抽象标识

  • 如何使用Jooq构建这个查询?

  • 我正在尝试在我的列表中显示在EditText中收集的3个数据。在执行按钮时。如果有3个字段要添加,它们将单独存储给我。我可以在我的代码中做些什么来使其统一为列表中的单个字段?示例:姓名:薛西斯年龄:14描述罪行:当我离开学校时,他朝我吐口水。 当您点击保存按钮时: 你所期待的Jorge 14当我离开学校时,他向我吐口水(列表中的一行)现在发生的事情Jorge 14当我离开学校时,他向我吐口水。(列

  • rank ▲ ✰ vote url 3 1346 1485 2648 url Python中如何在一个函数中加入多个装饰器? 怎么做才能让一个函数同时用两个装饰器,像下面这样: @makebold @makeitalic def say(): return "Hello" 我希望得到 <b><i>Hello</i></b> 我只是想知道装饰器怎么工作的! 去看看文档,答在下面: def