Python相当于R的pandas数据框列表

jim*_*ako 2 python r list dataframe pandas

我试图将多个数据帧收集到一个变量中,但我在Python中遇到这个问题时遇到了麻烦.

我试图在R中执行的代码如下

df1 <- data.frame()
df2 <- data.frame()
my_collection <- list(my_df1 = df1, my_df2 = df2)
Run Code Online (Sandbox Code Playgroud)

这使我可以做很好的事情,比如根据名称调用个人数据框(例如my_collection[["my_df1"]]).

问题是我无法在Python中找到允许我将它们组合成可搜索的单个变量的解决方案.我对Python的术语有点困惑,因此很难指向正确的方向.

任何能够结合起来的帮助将非常感激!谢谢!

jua*_*aga 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
Run Code Online (Sandbox Code Playgroud)

注意,我dictDataFrame构造函数中使用了文字,但我正在使用dict构造函数,因此语法与R的相同.

您也可以使用文字:

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
Run Code Online (Sandbox Code Playgroud)

注意,R列表基本上是允许标记的数组,但复杂性与数组(可能是数组列表)相同.它们是Python list的精心设计.A dict是具有非常不同的运行时复杂性的哈希表.它更像是一个R环境(或者更确切地说,R环境在引擎盖下使用的东西 - 我不认为R有一个普通的哈希映射数据结构).