我正在尝试将多个数据帧收集到一个变量中,但我在Python中无法做到这一点。
我试图在R中执行的代码如下
df1 <- data.frame()
df2 <- data.frame()
my_collection <- list(my_df1 = df1, my_df2 = df2)
这使我可以做很好的事情,例如根据名称调用单个数据框(例如my_collection[["my_df1"]]
)。
问题在于我无法在Python中找到允许我将它们组合成可搜索的单个变量的解决方案。我对Python的术语有点困惑,因此很难指出正确的方向。
任何能够合并的帮助都将非常感谢!谢谢!
答案 0 :(得分:5)
听起来我想要dict
:
In [6]: df1 = pd.DataFrame({'a':[1,2,3],'b':[4,5,6]})
In [7]: df2 = pd.DataFrame({'c':[7,8,9], 'd':[10,11,12]})
In [8]: df1
Out[8]:
a b
0 1 4
1 2 5
2 3 6
In [9]: df2
Out[9]:
c d
0 7 10
1 8 11
2 9 12
In [10]: frames = dict(my_df1=df1, my_df2=df2)
In [11]: frames['my_df1']
Out[11]:
a b
0 1 4
1 2 5
2 3 6
In [12]: frames['my_df2']
Out[12]:
c d
0 7 10
1 8 11
2 9 12
注意,我在dict
构造函数中使用DataFrame
文字,但我只是使用dict
构造函数,因此语法看起来与R&#相同39; S
您也可以使用文字:
In [13]: frames2 = {'foo':df1, 'bar':df2}
In [14]: frames2['foo']
Out[14]:
a b
0 1 4
1 2 5
2 3 6
In [15]: frames2['bar']
Out[15]:
c d
0 7 10
1 8 11
2 9 12
注意,R
列表基本上是允许标记的数组,但复杂性与数组(可能是数组列表)相同。它们是Python list
的修饰版。 dict
是具有非常不同的运行时复杂性的哈希表。它更像是R
环境(或者更确切地说,R环境在引擎盖下使用的内容 - 我不认为R具有简单的哈希映射数据结构)。