
我想根據 Month 列將 WL1 列中的 nan 值替換為字典中的值
這是字典: {'WL1': {1: 176.316, 2: 176.296, 3: 176.2825, 4: 176.398, 5: 176.52, 6: 176.576, 7: 176.558, 8: 176.519, 9: 176.479, 10: 17 , 11: 176.36, 12: 176.353}}
例如,如果 df['Month'] == 1 并且 WL1 中的值是 NaN 值,那么我們將 nan 替換為 176.326。如果沒有 nan 值,我們什么也不替換。
誰能告訴我如何編碼?
uj5u.com熱心網友回復:
fillna可以用一系列來替換 NaN 值。非 NaN 值保持不變。
用您的值替換月份數字 with dictionary,map然后將結果傳遞給fillna:
df["WL1"] = df.WL1.fillna(df.Month.map(dictionary["WL1"]))
uj5u.com熱心網友回復:
您可以將字典轉換為pd.Seriesor pd.DataFrame,然后merge將其與列上的原始資料集一起Month使用,然后使用fillna. 像這樣的東西:
import pandas as pd
import numpy as np
df = pd.DataFrame(dict(WL1=[np.nan, np.nan, 177.26], Month=[1, 2, 3]))
replacememnts = {
"WL1": {
1: 176.316,
2: 176.296,
3: 176.2825,
}
}
repl_df = pd.DataFrame(dict(repl=replacememnts["WL1"]))
df.merge(repl_df, left_on="Month", right_index=True).assign(
WL1=lambda x: x["WL1"].fillna(x["repl"])
).drop(columns=["repl"])
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/468911.html
