我有一个数据框:
| 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
答案 0 :(得分:2)
replace
和ffill
: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