2017-06-25 8 views
2

次のデータセットがあります。行の欠損値を前の行の値に置き換えます。

私は以下のデータセットを持っています。ご覧のとおり、列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  

最終アウトプットは、このようなものです:

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  

私はコピーを使用することができますが、私は列の間反復する方法がわかりません。なにか提案を ?

+0

データセットのファイル形式は何ですか - CSV、タブ区切りtxtなど –

答えて

5

欠損値がNaNのであればffill()と同じであるかの方法ffillで使用fillna:欠損値が空の文字列である場合

cols = ['A','B','D','R'] 
df[cols] = df[cols].ffill() 

cols = ['A','B','D','R'] 
df[cols] = df[cols].replace('',np.nan).ffill() 
関連する問題