我正在嘗試計算資料框中每行的方程并將值分配給新列:
def exercise_02():
df_region = df.groupby(by = "region").sum()
for i in range(len(df_region)):
i == 0
df_region["w_avg"] = df1["2018_x"][i] * df1["2018_y"][i] / df1["2018_y"][i]
i = i 1
result = df_region
return result
當我只寫這個時,它會顯示這個輸出: 在此處輸入影像描述
如您所見,列w_avg已創建,但它包含相同的值。
我試圖通過在回圈內的列名后添加 [i] 來解決:
def exercise_02():
df_region = df.groupby(by = "region").sum()
for i in range(len(df_region)):
i == 0
**df_region["w_avg"][i]** = df1["2018_x"][i] * df1["2018_y"][i] / df1["2018_y"][i]
i = i 1
result = df_region
return result
但是,相反,我收到此錯誤訊息:
if tolerance is not None:
KeyError: 'w_avg'
你知道我做錯了什么嗎?謝謝!
uj5u.com熱心網友回復:
DataFrames 的好處是你不需要回圈。它們是矢量化的。如果您要將(作業?)功能更改為
def exercise_02():
df_region = df.groupby(by = "region").sum()
df_region["w_avg"] = df_region["2018_x"] * df_region["2018_y"] / df_region["2018_y"]
return df_region
但是,我注意到您正在混合多個資料幀。如果它們的大小不同,您將遇到有關長度/索引問題的問題。這實際上取決于您之間的關系df_region,df和df_1。
我提到后者的原因是您或多或少地不小心(?)使用了函式范圍之外的變數。您的函式沒有引數,但在其范圍內使用dfand 。df1因此,您的問題中肯定缺少一些東西,您需要了解自己,或傳達給社區以完全“回答”您的問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/436046.html
上一篇:如何在ProtractorTypeScript中通過post請求上傳檔案
下一篇:你如何通過增加奇數進行迭代?
