替换熊猫中包含NaN的整行

时间:2018-08-12 03:03:00

标签: python pandas nan

我在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

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

使用maskisnull将所有行屏蔽为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