我有两个数据帧,具有相同的列名、索引和大小。我想创建一个散点图,将一个数据帧列与另一个具有相同标题的数据帧列进行比较。当我尝试下面的代码时,只有sim.columns在循环,而obs.columns只打印第一列,不循环。所以我得到的是每个模拟柱相对于第一个obs柱的散点图。我不确定这个循环出了什么问题。谢谢你的帮助
obs= pd.read_csv(obsFile)
obs.rename(columns={obs.columns[0]: "SP" }, inplace = True)
sim= pd.read_csv(simFile)
sim.rename(columns={sim.columns[0]: "SP" }, inplace = True)
sim = sim.set_index("SP")
obs = obs.set_index("SP")
for colsim in sim.columns:
for colobs in obs.columns:
axes = plt.gca()
axes.set_xlim([1,630])
plt.scatter(sim.index, sim[colsim])
plt.scatter(obs.index, obs[colobs])
plt.xlabel('Stress Period')
plt.ylabel('groundwater elevation(m)')
plt.title(str(colsim))
plt.savefig(os.path.join(outFold, str(colsim)+'.pdf'))
plt.close()
break
这里不应该使用嵌套循环,它不是您想要实现的。相反,您希望在一个循环中同时循环两个数据帧。我可以想出两种方法来实现这一点:
而不是双for循环:
只需使用
zip
:不知道你想做什么是什么意思,但如果这段代码不起作用,请尝试删除
break
,然后它应该会起作用,但如果它在不删除中断的情况下起作用,请保留它相关问题 更多 >
编程相关推荐