如何在空值上折叠 pandas 中的列?

cal*_*Guy 5 python numpy concatenation pandas

假设我有以下数据框:

pd.DataFrame({'col1':    ["a", "a", np.nan, np.nan, np.nan],
            'override1': ["b", np.nan, "b", np.nan, np.nan],
            'override2': ["c", np.nan, np.nan, "c", np.nan]})


    col1    override1   override2
0     a        b          c
1     a       NaN        NaN
2     NaN      b         NaN
3     NaN     NaN         c
4     NaN     NaN         NaN
Run Code Online (Sandbox Code Playgroud)

有没有办法将 3 列折叠成一列,其中override2overrides override1,它 overrides col1,但是,如果存在 NaN,则要保留前面的值?另外,我主要是在寻找一种不必制作额外专栏的方法。我真的在寻找内置的 pandas 解决方案。

这是我正在寻找的输出:

 collapsed
0  c
1  a
2  b
3  c
4  NaN
Run Code Online (Sandbox Code Playgroud)

WeN*_*Ben 5

使用ffill

df.ffill(1).iloc[:,-1]
Run Code Online (Sandbox Code Playgroud)