在一個非常大的資料集中,我想在兩個值之間填充 nan 值。資料集如下所示:
df = pd.DataFrame ({'col1':[1,2,3,4,5,6,7,8,9,10,11,12],
'col2':[100,np.nan,100,np.nan,np.nan,999,999,np.nan,100,np.nan,np.nan,100]})
我只想填寫出現在 999 和 100 之間的那些 nan 值。預期輸出是:
df['col2'] = [100,np.nan,100,500,500,999,999,500,100,np.nan,np.nan,100]
uj5u.com熱心網友回復:
如果可能的話,測驗前向和回填缺失值999并100使用:
s1 = df['col2'].ffill()
s2 = df['col2'].bfill()
df.loc[(s1.eq(999) & s2.eq(100)) | (s1.eq(100) & s2.eq(999)), 'col2'] = 500
print(df)
col1 col2
0 1 100.0
1 2 NaN
2 3 100.0
3 4 500.0
4 5 500.0
5 6 999.0
6 7 999.0
7 8 500.0
8 9 100.0
9 10 NaN
10 11 NaN
11 12 100.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/324077.html
上一篇:無法識別事件訊息
