我想通過迭代和在兩個資料幀,該值進行比較PORResult,p90Result并然后在第三資料幀更新的值,CountResult基于該比較。如果輸入中的值PORResult大于輸入中的值,p90result我想將輸入中的值更新CountResult為 = 1。所有資料框的大小都相同 (121x365),并且具有相同的列名和索引。這是我被困的地方:
for index, row1 in PORResult.iterrows():
for index, row2 in p90Result.iterrows():
if PORResult.loc[index,row1]>p90Result.loc[index,row2]:
CountResult.at[index,row1]=1
當我嘗試此操作時,我收到以下錯誤訊息:“[Float64Index([ nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,\n ...\n nan, nan, nan , nan, nan, nan, nan, nan, nan, 46.0],\n dtype='float64', name='day', length=365)] 在 [columns]" 我不知道去哪里從這里。這是否意味著我的資料框設定不正確,或者我沒有正確執行回圈?我是 python 的新手,所以感謝任何幫助!
uj5u.com熱心網友回復:
此回圈將第一個資料幀的所有行與第二個資料幀的所有行進行比較。您應該制作回圈,例如 for i in range(PORResult.shape[0]): for j in range (PORResult.shape[1]):
uj5u.com熱心網友回復:
這就是我解決問題的方法
for day in PORResult.columns:
for year in PORResult.index:
tmax = PORResult.loc[year, day]
perc = p90Result.loc[year, day].values[0]
if tmax > perc:
CountResult.loc[year, day] = 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/355128.html
上一篇:誰能解釋一下如何解決這個索引錯誤
下一篇:基于前兩列的第三列
