我有一個資料框,如下所示:
df = pd.DataFrame({'A': [1, np.nan, np.nan, np.nan, 3, 3, 3, 3, np.nan, np.nan, np.nan, 5, 5, 5, 6, 6, 6, np.nan, np.nan, np.nan, 6, 7, 8, 9, 10,np.nan, np.nan, 10, 11]})
我只想在之前的非 nan 值等于流動的非 nan 值時填充 nan 值。
預期輸出:
df = pd.DataFrame({'A': [1, np.nan, np.nan, np.nan, 3, 3, 3, 3, np.nan, np.nan, np.nan, 5, 5, 5, 6, 6, 6, np.nan, np.nan, np.nan, 6, 7, 8, 9, 10, np.nan, np.nan,10, 11],'fill_nan': [1, np.nan, np.nan, np.nan, 3, 3, 3, 3, np.nan, np.nan, np.nan, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 8, 9, 10, 10, 10,10, 11]})
uj5u.com熱心網友回復:
嘗試比較bfill與ffill:
s = df.ffill()
out = s.where(s.eq(df.bfill()))
輸出:
A
0 1.0
1 NaN
2 NaN
3 NaN
4 3.0
5 3.0
6 3.0
7 3.0
8 NaN
9 NaN
10 NaN
11 5.0
12 5.0
13 5.0
14 6.0
15 6.0
16 6.0
17 6.0
18 6.0
19 6.0
20 6.0
21 7.0
22 8.0
23 9.0
24 10.0
25 10.0
26 10.0
27 10.0
28 11.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/315291.html
