用前一行的值替换行的某些缺失值

Mar*_*ary 2 python pandas

我有以下数据集.

我有以下数据集.如您所见,A,B,D和R列中的某些值缺失.我将使用前一行中的精确值替换值.例如,在第4行中,缺少B列和R列的值,我需要用前一列中的21和2替换它们.

  A   B        D        R        sentence              ADR1         ADR2     
 135 21  EffexorXR.21    1    lack of good feeling.     good        feeling
                                                          0              0
 136 21  EffexorXR.21    2    Feel disconnected        disconnected   feel    
 136     EffexorXR.21                                     0            0
 142 22  EffexorXR.22    1    Weight gain               gain         
 142                     1                                1    
Run Code Online (Sandbox Code Playgroud)

最终的出局是这样的:

  A  B          D        R        sentence              ADR1         ADR2     
 135 21  EffexorXR.21    1    lack of good feeling.     good        feeling
 135 21  EffexorXR.21    1                               1             0
 136 21  EffexorXR.21    2    Feel disconnected        disconnected   feel    
 136 21  EffexorXR.21    2                                 0            0
 142 22  EffexorXR.22    1    Weight gain               gain         
 142 22  EffexorXR.22    1                                1    
Run Code Online (Sandbox Code Playgroud)

我可以使用copy,但我不知道如何在行之间进行迭代.有什么建议吗?

jez*_*ael 5

使用fillna与方法ffill为的是相同的ffill(),如果缺失值NaNS:

cols = ['A','B','D','R']
df[cols] = df[cols].ffill()
Run Code Online (Sandbox Code Playgroud)

如果缺少的值是空字符串:

cols = ['A','B','D','R']
df[cols] = df[cols].replace('',np.nan).ffill()
Run Code Online (Sandbox Code Playgroud)