【发布时间】:2015-08-26 19:33:37
【问题描述】:
我有一个带有间歇性 NaN 值的 Pandas 数据框:
Index Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8
1991-12-31 100.000 100.000 NaN NaN NaN NaN NaN NaN
1992-01-31 98.300 101.530 NaN NaN NaN NaN NaN NaN
1992-02-29 97.602 100.230 98.713 NaN NaN NaN NaN NaN
1992-03-31 93.473 NaN 102.060 NaN NaN NaN NaN NaN
1992-04-30 94.529 102.205 107.755 NaN NaN NaN NaN NaN
我想删除具有 6 个或更多 NaN 的前导行。具体来说,在这种情况下,我只想删除索引为“1991-12-31”和“1992-01-31”的行。
使用 df.dropna(thresh = 6) 不起作用,因为它也会删除行 '1992-03-31'。
一种解决方案是计算每一行中的 NaN,当 NaN 的数量小于 6 时,在第一行停止。
任何更快/更清洁的解决方案?
编辑:为清楚起见和@Alexander 的评论进行了编辑
【问题讨论】:
-
“1992-02-29”有 5 个 NaN - 它有什么不同可以让您确定不想放弃它?
-
@chrisb,删除前导行。
-
所有行至少有五个 NaN。当然,您的意思是超过 5 个 NaN 的行。
-
@Alexander 感谢您指出这一点。修正了问题。
标签: python numpy pandas dataframe