Используйте boolean indexing
с DataFrame.any
для проверки не менее одного np.inf
на строки:
df = pd.DataFrame({
'A':list('abcdef'),
'B':[4,5,4,5,5,4],
'C':[7,8,9,4,np.inf,3],
'D':[1,np.inf,5,7,1,0],
'E':[5,3,6,9,2,np.inf],
'F':list('aaabbb')
})
df1 = df[(df == np.inf).any(axis=1)]
print (df1)
A B C D E F
1 b 5 8.0 inf 3.0 a
4 e 5 inf 1.0 2.0 b
5 f 4 3.0 0.0 inf b
Или, если необходимо, отфильтруйте столбцы, а такжестроки:
m = (df == np.inf)
df2 = df.loc[m.any(axis=1), m.any(axis=0)]
print (df2)
C D E
1 8.0 inf 3.0
4 inf 1.0 2.0
5 3.0 0.0 inf
Подробности :
print (df == np.inf)
A B C D E F
0 False False False False False False
1 False False False True False False
2 False False False False False False
3 False False False False False False
4 False False True False False False
5 False False False False True False
print ((df == np.inf).any(axis=1))
0 False
1 True
2 False
3 False
4 True
5 True
dtype: bool