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

标签 python r list pandas dataframe

我正在尝试将多个数据帧收集到一个变量中,但我在 Python 中执行此操作时遇到了问题。

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

df1 <- data.frame()
df2 <- data.frame()
my_collection <- list(my_df1 = df1, my_df2 = df2)

这让我可以做一些不错的事情,例如根据名称调用单个数据帧(例如 my_collection[["my_df1"]])。

问题是我无法在 Python 中找到允许我将它们组合成一个可搜索的单个变量的解决方案。我有点不明白这在 Python 术语中是什么意思,因此很难找到正确的方向。

任何能够结合的帮助将不胜感激!谢谢!

最佳答案

在我看来你想要一个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

注意,我在 DataFrame 构造函数中使用了 dict 文字,但我使用的是 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

请注意,R 列表基本上是允许标记的数组,但复杂性与数组(可能是数组列表)相同。它们是修饰过的 Python listdict 是一个哈希表,具有非常不同的运行时复杂度。它更等同于 R 环境(或者更确切地说,R 环境在幕后使用的是什么 - 我认为 R 没有普通的 HashMap 数据结构)。

关于Python 相当于 R 的 Pandas 数据框列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40921535/

相关文章:

python - Numpy 像 python 一样否定索引

r - 创建一个新变量,它是一个变量以另外两个变量为条件的平均值(并维护数据集中的所有其他变量)

java - 关于汇总列表中的值的建议

python - Pandas :加入有条件的数据框

python - 在 greenlet 中访问 flask.g

r - Google Maps Platform 最多 60 个结果限制的解决方法

python - 有没有办法在内部函数的函数中使用变量

R分解列表

python - 下载 Django 时出错

Rscript 使用不正确的 R 版本