我有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轴位于底部。
您的问题不完整,因为没有人可以在无法访问您的数据的情况下运行您的代码。不过,你可以尝试这样的事情。我们的想法是在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")