我需要根据条件复制并粘贴列的先前非空值。我需要以最有效的方式来做,因为行数是几百万。使用for loop将是计算成本高的。
因此,如果有人可以在这方面帮助我,我们将不胜感激。
|Col_A |Col_B |
|--------|--------|
|10.2.6.1| NaN |
| NaN | 51 |
| NaN | NaN |
|10.2.6.1| NaN |
| NaN | 64 |
| NaN | NaN |
| NaN | NaN |
|10.2.6.1| NaN |
根据条件,只要Col_A在此示例中 10.2.6.1 将具有任何值(非空),最后看到的值Col_B (51...64 respectively)将粘贴到该Col_A值不为空的相应行上。数据集应如下所示:
|Col_A |Col_B |
|--------|--------|
|10.2.6.1| NaN |
| NaN | 51 |
| NaN | NaN |
|10.2.6.1| 51 |
| NaN | 64 |
| NaN | NaN |
| NaN | NaN |
|10.2.6.1| 64 |
我尝试使用下面的代码,但它不起作用:
df.loc[df["Col_A"].notnull(),'Col_B'] = df.loc[df["Col_B"].notnull(),'Col_B']