Python:返回函数变量并赋值给新变量

时间:2017-04-25 20:18:07

标签: python function pandas dictionary dataframe

我有一个函数返回pandas数据帧的dict。 dict有一个键,每个数据帧的键是其对应的名称。

def fun(inputs):
x = calculations
y = calculations
z = calculations, etc.
return: {'name1':x,'name2':y,'name3':z}

我想在我的代码中的其他地方使用其中一些数据帧作为变量。为此,我目前正在执行以下操作:

x = fun()
var1 = x['name1']
var2 = x['name2']
var3 = x['name3']

等等。我想更有效地做到这一点(更少的代码行)。在我看来,我应该能够做到这样的事情:

[var1,var2,var3]   = fun()

但这只是将每个变量的每个名称指定为一个字符串。可以这样做吗?或者我的功能输出应该设置不同吗?

1 个答案:

答案 0 :(得分:4)

namedtuple

  • import来自namedtuple
  • collections函数
  • 使用它创建一个新的class,然后您可以使用它来实例化新的类成员
  • 现在,使用点表示法访问指定的元素。
from collections import namedtuple

mydfs = namedtuple('MyDFs', ['name1', 'name2', 'name3'])

def fun(inputs):
    x = calculations
    y = calculations
    z = calculations, etc.
    return mydfs(x, y, z)


x = fun(inputs)

x.name1

如果需要,您也可以解压其中一个:

var1, var2, var3 = x

旧答案

最简单的方法是将该字典传递给pd.Panel构造函数

pn = pd.Panel({'name1':x,'name2':y,'name3':z})

现在可以将其视为一系列数据帧。每个数据帧都可以通过pn['name1']等访问