pandas 通过增加最后一个值来回填 NaN

use*_*076 2 python pandas

我有一个数据框:

            A    B    C
Timestamp
    1      NaN   NaN   NaN
    2      NaN   NaN   NaN
    3      NaN   NaN    5
    4      NaN   NaN    4
    5      NaN    3     3
    6      NaN    2    NaN
    7       3     1    NaN
    8       2    NaN   NaN
    9       1    NaN   NaN
Run Code Online (Sandbox Code Playgroud)

我想通过增加每列中的最后一个可用值来回填它,因此它看起来像这样:

            A    B    C
Timestamp
    1       9    7    7
    2       8    6    6
    3       7    5    5
    4       6    4    4
    5       5    3    3
    6       4    2    NaN
    7       3    1    NaN
    8       2    NaN  NaN
    9       1    NaN  NaN
Run Code Online (Sandbox Code Playgroud)

Sco*_*ton 5

让我们试试这个:

df1 = df1[::-1].fillna(method='ffill')
(df1 + (df1 == df1.shift()).cumsum()).sort_index()
Run Code Online (Sandbox Code Playgroud)

输出:

              A    B    C
Timestamp               
1          9.0  7.0  7.0
2          8.0  6.0  6.0
3          7.0  5.0  5.0
4          6.0  4.0  4.0
5          5.0  3.0  3.0
6          4.0  2.0  NaN
7          3.0  1.0  NaN
8          2.0  NaN  NaN
9          1.0  NaN  NaN
Run Code Online (Sandbox Code Playgroud)