【问题标题】:Python defining functions that create variables based on input namePython 定义基于输入名称创建变量的函数
【发布时间】:2021-12-10 00:59:33
【问题描述】:

我有一个将数据框作为输入 pyth_wins(df) 的函数,我希望数据框的名称创建一个新变量 total_DF,其中“DF”引用原始输入名称,如何做到这一点?

举一个具体的例子,如果新变量将是total_DF,其中 DF 引用输入的字符串(该数据帧的名称)。此变量将等于经过一些操作后应用于数据帧的 sum 函数。如果我想运行pyth_wins(2020),它将创建变量total_2020,如果pyth_wins(2021),total_2021。这也将是函数的输出,因此稍后可以参考。一个函数可以返回多个输出吗?我认为这将返回一个数据框,然后还创建可以在代码中引用的这个变量。谢谢!

【问题讨论】:

  • 动态创建变量通常是个坏主意。最好使用单个字典并将所需的名称添加为键,并将数据框添加为值。
  • 嗯,基本上我想用这个函数来接受输入,返回一个字符串并创建一个变量。首先,能做到吗?或者函数只能返回一次......下一部分将根据函数输入(这是数据框的名称)创建变量。您如何将数据框输入的名称作为字符串操作,并在整个函数中使用它作为返回内容的一部分?

标签: python pandas user-defined-functions


【解决方案1】:

我也不建议创建这样的变量,但是,

如果您想根据某个输入列表动态创建变量,并更改名称,您可以尝试类似的方法

import sys

New_Variables = {
    "a" : 0,
    "b" : 1,
    "c" : 2,
}

def main():
    for (key,value) in New_Variables.items():
        vars(sys.modules[__name__])["Prefix_"+key] = value

    print(Prefix_a)
    print(Prefix_b)
    print(Prefix_c)

if __name__ == "__main__":
    main()

【讨论】:

    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 2019-04-10
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多