根据熊猫数据框中另一列的最后一个值填充列

时间:2019-08-14 22:26:49

标签: python pandas dataframe

我有一个数据框:

   | col_1 | col_2
---------------------
 0 | 1     | NaN
 1 | 0     | NaN
 2 | 0     | NaN
 3 | 0     | NaN
 4 | 0     | NaN
 5 | 0     | NaN
 6 | 0     | NaN
 7 | -1    | NaN
 8 | 0     | NaN
 9 | 0     | NaN
 10| 0     | NaN
 11| 0     | NaN

现在,我正在尝试基于col_1中该数字的最后一次出现为col_2填充1或-1。

我正在尝试以以下格式获取它:

   | col_1 | col_2
---------------------
 0 | 1     | 1
 1 | 0     | 1
 2 | 0     | 1
 3 | 0     | 1
 4 | 0     | 1
 5 | 0     | 1
 6 | 0     | 1
 7 | -1    | -1
 8 | 0     | -1
 9 | 0     | -1
 10| 0     | -1
 11| 0     | -1

1 个答案:

答案 0 :(得分:2)

使用replaceffill

df['col_2'] = df['col_1'].replace(0, np.NaN).ffill()

输出

    col_1  col_2
0       1    1.0
1       0    1.0
2       0    1.0
3       0    1.0
4       0    1.0
5       0    1.0
6       0    1.0
7      -1   -1.0
8       0   -1.0
9       0   -1.0
10      0   -1.0
11      0   -1.0