首页 > 解决方案 > Pandas pandas 从另一列向后填充

问题描述

我有一个这样的df:

val1 val2
9    3
2    .
9    4
1    .
5    1

如何使用 bfill con val2 但引用 val1,以便数据帧导致:

val1 val2
9    3
2    9
9    4
1    3
5    1

所以缺失值 con val2 是 val1 的前一个值 BUT

标签: pythonpandas

解决方案


您可以在第二列中填充 NA 值,第一列向下移动一行:

>>> import pandas as pd
>>> df = pd.DataFrame({"val1": [9, 2, 9, 1, 5], "val2": [3, None, 4, None, 1]})
>>> df
   val1  val2
0     9   3.0
1     2   NaN
2     9   4.0
3     1   NaN
4     5   1.0
>>> df["val2"].fillna(df["val1"].shift(), inplace=True)
>>> df
   val1  val2
0     9   3.0
1     2   9.0
2     9   4.0
3     1   9.0
4     5   1.0

推荐阅读