首页 > 解决方案 > 用其他列填充 NaN 和空值

问题描述

我想用其他列值填充 NaN 和空值,在这种情况下,列barcode_y由列填充barcode_x

这是我的数据

    id      barcode_x     barcode_y A   B
0   7068    38927887      38927895  0   12
1   7068    38927895      38927895  0   1
2   7068    39111141      38927895  0   4
3   7116    73094237                18  309
4   7154    37645215      37645215  0   9
5   7342    86972909           NaN  7   25

这就是我需要的

    id      barcode_x     barcode_y A   B
0   7068    38927887      38927895  0   12
1   7068    38927895      38927895  0   1
2   7068    39111141      38927895  0   4
3   7116    73094237      73094237  18  309
4   7154    37645215      37645215  0   9
5   7342    86972909      86972909  7   25

假设我如何做到这一点?

标签: pythonpandasdataframemask

解决方案


使用mask

x, y = df['barcode_x'], df['barcode_y']
y.mask(y.eq('') | y.isna(), x)

0    38927895
1    38927895
2    38927895
3    73094237
4    37645215
5    86972909
Name: barcode_y, dtype: object

推荐阅读