给出以下示例:
df =
0 NaN 5.0 NaN 6.0 NaN
1 5.0 6.0 6.0 NaN NaN
2 6.0 6.0 NaN NaN NaN
3 6.0 NaN NaN NaN 6.0
4 NaN NaN NaN 6.0 NaN
5 6.0 6.0 6.0 8.0 7.0
6 6.0 6.0 8.0 7.0 8.0
7 6.0 8.0 7.0 8.0 8.0
8 8.0 7.0 8.0 8.0 NaN
9 7.0 8.0 8.0 NaN 9.0
如何找到连续k-NaN的行?例如,对于k = 3,所需的行是[2,3,4]
解决方法:
In [164]: df[df.astype(str).sum(1).str.contains(''.join(['nan']*3))]
Out[164]:
0 1 2 3 4 5
2 2 6.0 6.0 NaN NaN NaN
3 3 6.0 NaN NaN NaN 6.0
4 4 NaN NaN NaN 6.0 NaN
说明:
In [166]: df.astype(str).sum(1)
Out[166]:
0 0nan5.06.06.0nan
1 15.06.06.0nannan
2 26.06.0nannannan
3 36.0nannannan6.0
4 4nannannan6.0nan
5 56.06.06.08.07.0
6 66.06.08.07.08.0
7 76.08.07.08.08.0
8 88.07.08.08.0nan
9 97.08.08.0nan9.0
dtype: object
In [167]: ''.join(['nan']*3)
Out[167]: 'nannannan'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。