首页 > 解决方案 > 如何在空值上折叠熊猫中的列?

问题描述

假设我有以下数据框:

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

有没有办法将 3 列折叠成一列,其中override2overrides override1,其中 overrides col1,但是,如果有 NaN,那么要保留 bofore 的值?另外,我主要是在寻找一种不需要制作额外专栏的方法。我真的在寻找一个内置的熊猫解决方案。

这是我正在寻找的输出:

 collapsed
0  c
1  a
2  b
3  c
4  NaN

标签: pythonpandasnumpyconcatenationcollapse

解决方案


使用ffill

df.ffill(1).iloc[:,-1]

推荐阅读