使用条件填充和B填充Pandas

14ifxucb  于 2023-03-11  发布在  其他
关注(0)|答案(1)|浏览(134)

我试图解决一个问题,我们需要使用ffill和bfill沿着条件。
数据框:

A 100
B NULL
C NULL
D 100
E NULL
F 103

输出数据框:

A 100
B 100
C 100
D 100
E NULL
F 103

行B和C填充为100,因为A的值= D的值= 100。行E未填充,因为D的值!= F的值
有人遇到过这样的问题吗?
我尝试使用FFill和BFill。

wmomyfyw

wmomyfyw1#

您可以计算ffillbfill,并使用where仅保留相同的值:

f = df['col2'].ffill()
b = df['col2'].bfill()

df['new'] = f.where(f.eq(b))

注意:我假设NULLNaNs,否则先是replace('NULL', np.nan)
输出(为清楚起见,作为新列):

col1   col2    new
0    A  100.0  100.0
1    B    NaN  100.0
2    C    NaN  100.0
3    D  100.0  100.0
4    E    NaN    NaN
5    F  103.0  103.0

相关问题