Python 函数仅返回第一个值而不是数据帧

2023-12-06

我构建了一个函数,将 5 个投资组合的收益附加到一个数据帧中,我想将其返回到一个变量。当我在函数中逐行运行命令(一种调试)时,我最终得到的变量“folioReturn”(这是我希望脚本返回的变量)具有正确数量的值(例如 5)。但是如果我调用该函数,则仅返回数据帧的第一个值。有谁知道我如何获得整个数据框?


def portfolioReturns (securities, quintilesNo, perReturns):
    '''
    this function receives 
    1)securities: array with the security names and values ** for the purpose of our work the names
    should already be sorted
    2)quintilesNo: the number of portfolios we want to create 
    3)perReturns: an array with the returns that will be used for performance measuremnt

    It returns an array with the returns for each portfolio

    '''

    # we calculate the number of securities per portfolio 
    stdFolioSize = np.divmod(securities.size, quintilesNo)[0] # we take the floor division
    folioReturn = [] # pd.DataFrame()
    # we create portfolios with equal number of securities except of the last one where we use all the remaining securities
    for k in range(0, quintilesNo, 1): # in folio list we store the name of the securities we must include in each portfolio
        if k < (quintilesNo - 1):           
            folioList = securities.index.get_level_values(1)[k * stdFolioSize : (k + 1) * stdFolioSize]

        else: # the last portfolio will also include the remainder securities 
            folioList = securities.index.get_level_values(1)[k * stdFolioSize : securities.size]

        # now that we have the list of the securities to be included in the folio, we use the table
        # with the periodical returns to check the performance. The portfolio we construct is equally weighted

        # first we drop one index(the first index of the country) and then we store all the periodical returns in one-array 
        perRetFinalTable = pd.DataFrame(perReturns.reset_index(level = 0, drop = True)).T  

        # using the list of the bonds we want to include in our portfolio we pick the bond returns and
        # we store them in one array. Then we calculate the folio return
        folio = perRetFinalTable[folioList]
        folioReturn = np.append(folioReturn, folio.sum(axis = 1) * (1 / folio.size))
        folioReturn = pd.DataFrame(folioReturn).T
        # folioReturn = pd.Series(folioReturn).T

        return (folioReturn)


您基本上太早退出了该功能。

这里有两个示例,可以让您更容易理解:

def test():
    lst = []
    for num in range(10):
        lst = num
        return lst

def test2():
    lst = []
    for num in range(10):
        lst.append(num)
    return lst

print(test()) # Output: 0
print(test2()) # Output: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

In test我们创建一个名为的列表变量lst,然后在 for 循环内,我们覆盖lst与当前变量num然后立即发出return语句,仅返回0因为它是 for 循环中的第一个条目。

In test2然而,我们在循环开始时做同样的事情,而不是覆盖lst我们改为使用该方法list.append()这增加了num到已经创建的列表。

完成整个 for 循环后,我们使用return返回变量的语句lst现在包含来自的所有值0 to 9.


编辑:看来我没能解决这个问题actual你的代码有问题。有两个主要错误:

  • 您正在使用退出 for 循环return语句,因为它位于 for 循环内部。修复缩进,问题就应该解决了。

  • 在 for 循环内部,您正在覆盖folioReturn而不是将 for 循环内部计算的值附加到其中。替换变量folioReturn在 for 循环内部,然后在创建之后DataFrame,将该值附加到folioReturn.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 函数仅返回第一个值而不是数据帧 的相关文章

  • Pandas 字符串提取所有匹配项

    我正在学习 pandas 系列字符串方法中的正则表达式操作 我能够从字符串中提取第一个数字 但我的正则表达式与第二个数字不匹配 如何捕获这两个数字 注意第二行 第二个元素在这里是 NAN CODE import pandas as pd d
  • 如何移动我的图像? python 3.10.4 pygame

    我会移动我的图像 图像是matiskinfinal png 我尝试将像素添加到 x 或其他我不知道它是什么的东西 因为我真的是 python 的初学者 pygame但是是 x x 变化 但图像没有移动 import os import py
  • turtle.Screen().screensize() 未输出正确的屏幕尺寸[重复]

    这个问题在这里已经有答案了 我编写了一些代码来在屏幕周围随机放置点 但是 它并没有覆盖整个屏幕 import turtle import random t turtle Turtle color red green blue pink ye
  • 检测/删除 Python 2 + GTK 中不成对的代理字符

    在Python 2 7中我可以成功转换Unicode字符串 abc udc34xyz 转换为 UTF 8 结果是 abc xed xb0 xb4xyz 但是当我将 UTF 8 字符串传递给例如时 pango parse markup or
  • 使用 boto3 从 s3 下载时使用 filename 作为文件名

    我正在使用 boto3 上传文件 如下所示 client boto3 client s3 aws access key id id aws secret access key key client upload file tmp test
  • 类型错误:需要 Future 或协程

    我尝试在 asyncssh 上自动重新连接 ssh 客户端 SshConnectManager 必须留在后台并在需要时进行 ssh 会话 class SshConnectManager object def init self host u
  • 如何使用 xlrd 将新列和行添加到 .xls 文件

    如何向 xlrd 中的工作表添加新列和 或行 我有一个使用 open workbook 读取的 xls 文件 我需要在第一张表中添加一个新列 bouncebacks 然后在该表中添加新行 但我在 xlrd 文档中找不到任何显示如何添加新行和
  • 使用 python 只读取 Excel 中的可见行

    我想只读取 python 中 Excel 工作表中的可见行 输入 Excel表 所以当我过滤时 作为 python 中的输出 在本例中我将仅获得可见数据 1 行 这是我的代码 from openpyxl import load workbo
  • python:是否有用于对输入流进行分块的库函数?

    我想对输入流进行分块以进行批处理 给定一个输入列表或生成器 x in 1 2 3 4 5 6 我想要一个能够返回该输入块的函数 说 如果chunk size 4 then x chunked 1 2 3 4 5 6 这是我一遍又一遍地做的事
  • 如何删除 pandas 数据框中的唯一行?

    我遇到了一个看似简单的问题 在 pandas 数据框中删除唯一的行 基本上 相反drop duplicates https pandas pydata org pandas docs stable generated pandas Data
  • Python,多线程,获取网页,下载网页

    我想在一个站点批量下载网页 我的 urls txt 文件中有 5000000 个 url 链接 大约有300M 如何让多线程链接这些网址并下载这些网页 或者如何批量下载这些网页 我的想法 with open urls txt r as f
  • 使 np.loadtxt 使用多个可能的分隔符

    我有一个程序可以读取数据文件 用户可以选择他们想要使用的列 我希望它对于输入文件更加通用 有时 列可能如下所示 10 34 24 58 8 284 6 121 有时它们可 能看起来像这样 10 34 24 58 8 284 6 121 我希
  • 如何测试列表中多个值的成员资格

    我想测试两个或多个值是否在列表中具有成员资格 但我得到了意外的结果 gt gt gt a b in b a foo bar a True 那么 Python 可以同时测试列表中多个值的成员资格吗 这个结果意味着什么 See also How
  • Celery:每个工作人员的 task_acks_late 的不同设置/向 celery 添加自定义选项

    这个问题是后续问题django celery 禁用一个工作者的预取 有错误吗 https stackoverflow com questions 58290045 django celery disable prefetch for one
  • 如何修改 contenteditable 元素的innerHTML

    我使用 Selenium 与 Chrome driver 和 python3 6 来测试网站 我在网页中有代码片段如下 div class 3F6QL 2WovP div class 39LWd Type a message div div
  • 如何加速 pandas 字符串函数?

    我正在使用 pandas 矢量化 str split 方法来提取从 上的拆分 返回的第一个元素 我还尝试使用 df apply 与 lambda 和 str split 来产生等效的结果 使用 timeit 时 我发现 df apply 的
  • Python:帮助(numpy)在退出时导致段错误

    我遇到了一个奇怪的现象 在 python 解释器中 我执行以下操作 gt gt gt import numpy gt gt gt help numpy 帮助显示正确 但一旦我按 q 返回解释器 Segmentation fault core
  • Scrapy 抓取并跟踪 href 中的链接

    我对 scrapy 很陌生 我需要从 url 的主页跟踪 href 到多个深度 再次在 href 链接内我有多个 href 我需要遵循这些href 直到到达我想要抓取的页面 我的页面的示例 html 是 初始页 div class page
  • 如何保持 python 3 脚本 (Bot) 运行

    不是母语英语 抱歉 英语可能很蹩脚 我也是编程新手 您好 我正在尝试使用 QueryServer 连接到 TeamSpeak 服务器来创建机器人 经过几天的努力 它有效 只有 1 个问题 而我却被这个问题困扰了 如果您需要检查 这是我正在使
  • 在Python中从CSV文件中获取随机行并找到相应的单词,就像测验一样

    抱歉标题含糊不清 想不出更好的表达方式 我有一个包含德语 英语单词的 CSV 文件 如下所示 Ja Yes Nein No Katze Cat 我希望我的 python 脚本从 CSV 文件中打印一个随机的德语单词 并要求他们输入英语单词

随机推荐

  • 使用 JavaScript 清除所有 cookie

    如何使用 JavaScript 删除当前域的所有 cookie function deleteAllCookies const cookies document cookie split for let i 0 i lt cookies l
  • 在模块窗口中,我可以看到加载的 dll 以相同的路径出现两次

    你能告诉我原因是什么吗 它是否从同一个位置加载了两次 我一直认为这与在同一个 dll exe 中同时拥有本机代码和托管代码有关 我在我的应用程序中看到了同样的情况 其中本机 C 模块加载托管许可证处理程序模块
  • Python 类变量或一般类变量

    来自 深入Python 类属性可以通过直接引用来获得 类并通过该类的任何实例 类属性可以用作类级常量 但它们是 不是真正的常数 您也可以更改它们 所以我在 IDLE 中输入 IDLE 2 6 5 gt gt gt class c count
  • 如何在Event Handler中获取HttpContext

    我试图在 MOSS 文档库的事件处理程序中获取 HTTPContext 但我所拥有的只是 HTTPContext Current 的空值 我在列表上执行相同的操作并返回 HTTPContext 有没有办法获取文档库中的HTTPContext
  • 尝试将 LinkedIn 集成到 iPhone 应用程序中

    我已经从以下位置下载了源代码https github com ResultsDirect LinkedIn iPhone 演示工作正常 并尝试在我的应用程序中使用 我已经按照此处提到的所有步骤进行了操作post 但我收到错误 OBJC CL
  • ConfigurationModule 传递到模块和上下文 - DotNet Core

    所以我尝试使用 Autofac DI 通过堆栈传递我的配置 json 文件 我的主要功能如下 static void Main string args Console WriteLine Starting Add the configura
  • 测试 UNC 路径“可访问性”

    我的程序需要访问某个 UNC 路径 但该路径是跨域的 因此根据运行程序的计算机 它可能有也可能没有默认凭据 通常 用户只需打开资源管理器并输入 UNC 或 IP 地址即可获得登录提示 此时他们可以输入共享所在域的适当凭据 是否有一种 干净
  • Firebase 根据日期按分数排序

    我正在尝试添加每月记分板 但这对我来说似乎有点困难 我不知道如何为某些列表或数组获取特定值 与日期一样 仅包含 2017 年 1 月 9 日值的日期 如果我能做到这一点 那么我想我可以按价值对它们进行排序 FirebaseDatabase
  • 如何在调用正文中使用 csv 文件来调用经过 TensorFlow 训练的 SageMaker 模型? [复制]

    这个问题在这里已经有答案了 我已在 AWS SageMaker 上部署了 TensorFlow 模型 并且希望能够使用 csv 文件作为调用正文来调用它 该文档说关于创建一个serving input function就像下面这个 def
  • jQuery 异常处理

    有什么方法可以捕获 javascript 中任何未捕获的异常吗 我的意思是 我所有的 危险 代码都在 try catch 块中 但是我没有明确处理的异常怎么办 我正在使用 jQuery 我的主要 javascript 文件以以下内容开头 d
  • Linux 如何将文件识别为某种文件类型,以及如何以编程方式更改它?

    我正在用 java 创建一个程序 该程序读取文件的输入流 通过根据密码更改字节数来对其进行加密 并创建一个新的加密文件 例如 我创建了一个测试文件 其中包含以下内容 This is a test to see if the encrypte
  • 将 Gridview 导出到 Excel 时删除复选框

    我有一个 gridview 需要导出到 Excel 我已设法从行中删除复选框 但不知道如何从标题中删除以及完全删除复选框列 感谢帮助
  • SQL查询删除两个不同数据库的3个表内连接中的重复值

    我正在使用 SQL Server 数据库 并且编写了以下查询 SELECT AM Martin dbo CpCore Site Latitude AM Martin dbo CpCore Site Longitude AM Martin d
  • Jquery - 链接外部 .js 文件不起作用

    由于某种原因 我链接到的外部 js 文件无法正常工作 我像这样链接到它 我已经使用一个简单的内联脚本测试了 jquery 以便在单击时隐藏一段文本 以便 jquery 库存在并工作 jquery js 文件与调用它的 index php 文
  • Matplotlib 默认情况下不会显示居中的多边形图?

    对于迄今为止我见过的所有类型的图 matplotlib没有时会自动居中xlim ylim 给出了值 例子 import matplotlib pyplot as plt A pts 162 5 137 5 211 0 158 3 89 6
  • C# 将列表中的对象转换为另一个对象

    是否可以将对象列表分配给另一个将其作为构造函数的对象列表 Eg public class PersonORM public PersonORM Person p convert public int PersonId get set Oth
  • 文件共享读写不起作用 (C#.NET)

    我正在使用 C 的十六进制编辑器控件 可以找到源代码和二进制文件here 使用它时的一个问题是 如果在十六进制编辑器和另一个程序中加载文件 则另一个程序无法保存该文件 因为它已经被另一个进程使用 所以我询问了控件的作者 他告诉我将 File
  • DirectShow 库 - 如何使用 directshow 库捕获图像而不在 PictureBox 或面板上显示网络摄像头实时图像

    我正在使用使用 DirectShow 库的 WPF 应用程序 它可以很好地抓取图像或记录实时源 但我希望最终用户不应该看到任何网络摄像头正在拍摄他们的照片 即我想要图片框或用户不应该看到正在渲染来自网络摄像头的提要的面板 我应该能够捕获图像
  • 如何在opencv中使用多频段搅拌机

    我想使用混合两个图像多频带混合但我不清楚这个函数的输入参数 void detail Blender prepare const std vector
  • Python 函数仅返回第一个值而不是数据帧

    我构建了一个函数 将 5 个投资组合的收益附加到一个数据帧中 我想将其返回到一个变量 当我在函数中逐行运行命令 一种调试 时 我最终得到的变量 folioReturn 这是我希望脚本返回的变量 具有正确数量的值 例如 5 但是如果我调用该函