Python 如果列等于表中的值,如何使当前行值等于前一行值?
我有一个数据帧,如下所示:Python 如果列等于表中的值,如何使当前行值等于前一行值?,python,pandas,numpy,Python,Pandas,Numpy,我有一个数据帧,如下所示: df ID val 1 0.0 2 yes 3 1.0 4 0.0 5 yes 如果列val等于“yes”,如何将前一个值与当前值匹配 我尝试了df['val']=df['val'].replace('yes',np.nan).bfill().astype(str),但无法按预期工作 期望输出 ID val 1 yes 2 yes 3 1.0 4 yes 5 yes 我们可以用np.where和bfill吗?如何进行此
df
ID val
1 0.0
2 yes
3 1.0
4 0.0
5 yes
如果列val等于“yes”,如何将前一个值与当前值匹配
我尝试了df['val']=df['val'].replace('yes',np.nan).bfill().astype(str)
,但无法按预期工作
期望输出
ID val
1 yes
2 yes
3 1.0
4 yes
5 yes
我们可以用np.where和bfill吗?如何进行此操作?如何:
df.loc[df['val'].shift(-1).eq('yes'), 'val'] = 'yes'
输出:
ID val
0 1 yes
1 2 yes
2 3 1.0
3 4 yes
4 5 yes