[英]loop through two dataframes and plot by column in loop
我有 2 個具有相同列名、索引和大小的數據框。 我想創建一個數據框列與另一個具有相同標題的散點圖。 當我嘗試下面的代碼時,只有 sim.columns 循環,而 obs.columns 只繪制第一列並且不循環。 所以我得到的是每個 sim.columns 僅針對第一個 obs.column 的散點圖。 我不確定這個循環有什么問題。 謝謝你的幫助!
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 循環:
for colsim in sim.columns:
for colobs in obs.columns:
...
只需使用zip
:
for colsim, colobs in zip(sim.columns, obs.columns):
...
不確定您想要做什么,但如果此代碼不起作用,請嘗試刪除break
然后它應該可以工作,但是如果沒有刪除中斷就可以正常工作,請保留它。
你不應該在這里使用嵌套循環,它不是你想要實現的。 相反,您希望在一個循環中同時遍歷兩個數據幀。 我可以想到兩種方法來實現這一目標:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.