我有一个函数返回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()
但这只是将每个变量的每个名称指定为一个字符串。可以这样做吗?或者我的功能输出应该设置不同吗?
答案 0 :(得分:4)
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']
等访问