我嘗試轉換我從 CSV 加載的 DataFrame 女巫。在該 CSV 中,列具有 NaN/無值。目標是全部更換!
例如,列 'gh' 的第 45 行(如圖所示:輸入資料幀)缺少一個值。我喜歡用第 1 行的值替換它,因為 'latitude','longitude', 'time' ,'step','valid_time' 是相等的。所以我喜歡用這些值進行基于條件的替換。但不僅適用于 'gh',還適用于 meanSea、msl、t、u 和 v。
輸入資料框
我嘗試了類似的東西(只是為了“gh”):
for i,row in df.iterrows():
value = row["gh"]
if pd.isnull(value):
for j,rowx in df.iterrows():
if row["latitude"]==rowx["latitude"] and row["longitude"]==rowx["longitude"] and row["time"]==rowx["time"] and row["step"]==rowx["step"]and row["valid_time"]==rowx["valid_time"]:
valuex = rowx["gh"]
row["gh"]=valuex
break;
我的嘗試
這對于大資料幀來說非常低效,所以我需要一個更好的解決方案。
uj5u.com熱心網友回復:
假設所有值都可以在資料集中的某個地方找到,最簡單的方法是按這些列('緯度'、'經度'、'時間'、'步長'、'valid_time')對 df 進行排序,然后向前填充 NaN:
df.sort_values(by=['latitude','longitude', 'time' ,'step','valid_time']).ffill()
但是,如果資料集中的其他地方沒有對應的行,這將失敗。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/392736.html
