我在編程方面相對較新,這是我編寫的第一個Python代碼。這是我用來計算的代碼。我已經(jīng)成功計算出這些值,它們可以在變量“HT”中看到。但我正在努力使用變量“ind”中的索引將其附加到“熱類別”列中的數(shù)據(jù)框“民意調(diào)查”中。將值獲取到列后,將其導出到 Excel 文件不會有問題。使用此代碼,我不斷為整個“熱類別”列中具有相同值的每個計算值獲取多個數(shù)據(jù)幀,并且它不斷重復另一個計算值。我認為附加到列必須基于索引一一完成,并且我必須在最后得到一個數(shù)據(jù)框,但我不確定如何。我在互聯(lián)網(wǎng)上瀏覽了許多以前的問題和解決方案,但未能找到適合我的情況的解決方案。誰能幫幫我嗎?import pandas as pd#assigning rangeAHi =[50,100,150,200,300]ALo=[0,51,101,151,201]CHi=[20,40,60,160,260]CLo=[0,20.1,40.1,60.1,160.1]poll=pd.read_excel("C:/Compiled sheet.xlsx")x = poll[['Temp_Avg']]y = poll[['Heat Category']]x_num=len(x)print(x_num)i=0for i in range(x_num): heat = x.iloc[i]['Temp_Avg'] #extracting all data from the column Temp_Avg len_num=0 len_num=len(AHi) for j in range(len_num): if heat<CHi[j] and heat>=CLo[j]: #finding out the range in which the values lie z=(CLo[j]) ind=CLo.index(z) #finding out the index CH=CHi[ind] CL=CLo[ind] AH=AHi[ind] AL=ALo[ind] #calculation try: y=((AH-AL)+(CH-CL))*(heat-CL) except ZeroDivisionError: print ('NA') HT=int(round(y,0)) #trial to add the values to the column Heat Category #poll.loc[[ind], 'Heat Category'] = HT #print (poll) poll.loc[:,'Heat Category'] = HT print(poll)預期產(chǎn)出 Temp_Avg Heat Category 175.77 382 163.59 428 135.97 498 and so on.....
1 回答

千巷貓影
TA貢獻1829條經(jīng)驗 獲得超7個贊
請注意,下面各行的縮進已進行調(diào)整。
#calculation
try:
y=((AH-AL)+(CH-CL))*(heat-CL)
except ZeroDivisionError:
print ('NA')
HT=int(round(y,0))
#trial to add the values to the column Heat Category
#poll.loc[[ind], 'Heat Category'] = HT
#print (poll)
poll['Heat Category'].iloc[i] = HT # This line was modified
print(poll)
第二行到最后一行也被修改
結果:
Temp_Avg Heat Category
0 175.77 3117.0
1 163.59 694.0
2 135.97 11297.0
3 124.88 9646.0
添加回答
舉報
0/150
提交
取消