如何在一组中打包数据帧或引用它们而不改变它们? Python 3

问题描述 投票:0回答:1

我有3个pd.DataFrame对象:A,B和C.我想在一个集合中总结它们(例如:set(A,B,C)),因为我想循环遍历列表并对它做一些事情但我也是不想改变数据帧或将其放在新词典中(基本上想要节省一些内存)。

编辑:set(A,B,C)给出了一个错误:设置预期最多1个参数,得到3.我尝试了{A,B,C}并得到:'系列'对象是可变的,因此它们不能被散列。所以问题是如何在不改变它们的情况下引用它们?

代码是:

A = pd.DataFrame([random.randint(1,100) for _ in range(100)])
B = pd.DataFrame([random.randint(1,100) for _ in range(100)])
C = pd.DataFrame([random.randint(1,100) for _ in range(100)])
set(A,B,C) # gets error: set expected at most 1 arguments, got 3
{A,B,C} # gets error: 'Series' objects are mutable, thus they cannot be hashed
for key in datasets:
    fig, axes = plt.subplots(2,1,sharex=True)
    temp = key
    temp.plot(ax=axes[0], grid=True, color="k")
    axes[0].set(ylabel=f"{key}")
    key.rolling(4, center=True).var().plot(ax=axes[1],grid=True, color="b")
    axes[1].set(xlabel="Date")

代码是非常自我解释但重申一下,我想要一个2行,1个col子图,其中数据位于顶行,滚动窗口方差位于底部,共享x轴位于底部。

python-3.x pandas memory-management set immutability
1个回答
0
投票

您的问题不完整,因为没有人可以在无法访问您的数据的情况下运行您的代码。不过,你可以尝试这样的事情。我们的想法是在for循环之外定义一次图形对象

fig, axes = plt.subplots(2,1,sharex=True)

for key in datasets:  
    key.plot(ax=axes[0], grid=True, color="k")
    axes[0].set_ylabel(f"{key}")
    key.rolling(4, center=True).var().plot(ax=axes[1],grid=True, color="b")
    axes[1].set_xlabel("Date")
© www.soinside.com 2019 - 2024. All rights reserved.