我在python中有一个NaN值的pandas数据框。如果一行具有NaN值,那么我想用前一行替换整个行。
所以这个
stock label open high low close
0 CAT 09:31 AM 137.090 137.175 137.090 137.175
1 CAT 09:32 AM NaN -1.000 -1.000 NaN
会成为这个
stock label open high low close
0 CAT 09:31 AM 137.090 137.175 137.090 137.175
1 CAT 09:32 AM 137.090 137.175 137.090 137.175
非常感谢您的帮助!
答案 0 :(得分:4)
使用mask
和isnull
将所有行屏蔽为NaN,然后我们使用ffill
df=df.set_index(['stock','label'])
df=df.mask(df.isnull().any(1)).ffill().reset_index()
df
Out[889]:
stock label open high low close
0 CAT 09:31AM 137.09 137.175 137.09 137.175
1 CAT 09:32AM 137.09 137.175 137.09 137.175