首页 > 解决方案 > 根据第一个有效的非空列填充数据框中的缺失值

问题描述

我正在尝试用每行中的第一个非空列值填充熊猫数据框中第一列中的空值,但似乎无法使其正常工作

这是一个例子

dfr = pd.DataFrame({'a':[np.nan, np.nan, 3, np.nan, np.nan], 'b':[4, np.nan, np.nan, 7, np.nan], 'c':[4, 5, 6, 7, np.nan], 'd':[3, 1, 3, 9, 12]})


#This is what my original data frame looks like

dfr
Out[107]: 
     a    b    c   d
0  NaN  4.0  4.0   3
1  NaN  NaN  5.0   1
2  3.0  NaN  6.0   3
3  NaN  7.0  7.0   9
4  NaN  NaN  NaN  12


#Here's what I would like the output to look like

dfr
Out[107]: 
     a    b    c   d
0  4.0  4.0  4.0   3
1  5.0  NaN  5.0   1
2  3.0  NaN  6.0   3
3  7.0  7.0  7.0   9
4  12  NaN  NaN  12

标签: pandas

解决方案


查看bfill

dfr.a=dfr.bfill(1).a
dfr
      a    b    c   d
0   4.0  4.0  4.0   3
1   5.0  NaN  5.0   1
2   3.0  NaN  6.0   3
3   7.0  7.0  7.0   9
4  12.0  NaN  NaN  12

推荐阅读