【问题标题】:Creating functions with unspecified number of returns创建具有未指定返回数的函数
【发布时间】:2021-03-02 06:47:58
【问题描述】:

我有一个简单的代码,它采用三个数据帧(Pandas 库)并将“PROLIFIC_PID”列的值分配为该数据帧的索引

def pid_set(a, b, c): #accepts three dataframes at a time and returns dataframes with same name with PID as index
    a = a.set_index('PROLIFIC_PID')
    b = b.set_index('PROLIFIC_PID')
    c = c.set_index('PROLIFIC_PID')
    return a, b, c

我想更改上面的代码,使其获取 X 个数据帧,将 PID 设置为索引,并返回 X 个新数据帧。我尝试了上面代码的多种变体,但没有成功——尝试将索引数据帧放在列表中并仅返回列表,我尝试将“传递”作为返回等——但它们没有像我希望的那样运行。

【问题讨论】:

    标签: python pandas return definition


    【解决方案1】:

    你可以让 X 成为一个数据框列表,比如

    X = [a, b, c, ...]
    
    def pid_set(X):
        for i in range(len(X)):
            X[i] = X[i].set_index("PROLIFIC_PID")
        return X
    

    顺便说一句,您不必返回这些数据帧,即使在 pid_set 函数之外,它们也会被更新。

    【讨论】:

    • 我认为必须退回一些东西。我尝试在末尾创建一个带有“pass”的定义,但它没有设置索引。
    • 你可以使用这个函数并尝试在最后省略return X,看看有没有什么作用。但是返回 X 很好。
    • 不工作的人。我认为我们都需要更多地审查定义
    • 当您尝试将 dfs 作为列表返回时,为什么不起作用?您可以发布该代码吗?重置索引后,您对列表做了什么?发回列表似乎是您想要的(接受列表 - 返回列表)。
    • @TKim 我也想知道这怎么可能行不通。请发布整个代码。另外,您是否尝试使用return X 语句运行代码? newX = pid_set([a, b, c, ...])
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-18
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多