我想用group
填充两个值之间的所有行。对于每个group
,var1
都有两个等于1
的值,我想填充两个1
之间缺少的行。var1
表示我拥有的,var2
表示我想要的,var3
显示我用代码获得的内容,但它不是我想要的(不同于var2
):
var1 group var2 var3
NaN 1 NaN NaN
NaN 1 NaN NaN
1 1 1 1
NaN 1 1 1
NaN 1 1 1
1 1 1 1
NaN 1 NaN 1
NaN 1 NaN 1
1 2 1 1
NaN 2 1 1
1 2 1 1
NaN 2 NaN 1
我的代码:
df.var3 = df.groupby('group')['var1'].bffill()
1条答案
按热度按时间mzmfm0qo1#
假设值仅为1或NaN,则可以使用
groupby.ffill
和groupby.bfill
,并且仅保留相同的值:输出量:
中间体: