본문 바로가기
파이썬

파이썬 Pandas의 데이터 프레임에서 숫자가 아닌 행을 찾으십니까?

by º기록 2020. 12. 23.
반응형

인덱스로 사용되는 열과 별도로 숫자 값만 있어야하는 팬더에 큰 데이터 프레임이 있습니다.

df = pd.DataFrame({'a': [1, 2, 3, 'bad', 5],
                   'b': [0.1, 0.2, 0.3, 0.4, 0.5],
                   'item': ['a', 'b', 'c', 'd', 'e']})
df = df.set_index('item')

숫자가 아닌 값이있는 데이터 프레임 df 의 행을 어떻게 찾을 수 있습니까?

이 예에서는 a 열에 'bad' 문자열이있는 데이터 프레임의 네 번째 행입니다. 이 행은 프로그래밍 방식으로 어떻게 찾을 수 있습니까?

 

해결 방법

 


In [11]: df.applymap(np.isreal)
Out[11]:
          a     b
item
a      True  True
b      True  True
c      True  True
d     False  True
e      True  True

행의 모든 ​​것이 True이면 모두 숫자입니다.

In [12]: df.applymap(np.isreal).all(1)
Out[12]:
item
a        True
b        True
c        True
d       False
e        True
dtype: bool

따라서 불량의 하위 DataFrame을 얻으려면 (참고 : 위의 부정, ~은 숫자가 아닌 불량이 하나 이상있는 항목을 찾습니다.)

In [13]: df[~df.applymap(np.isreal).all(1)]
Out[13]:
        a    b
item
d     bad  0.4


In [14]: np.argmin(df.applymap(np.isreal).all(1))
Out[14]: 'd'


df.applymap(lambda x: isinstance(x, (int, float)))

 

참조 페이지 https://stackoverflow.com/questions/21771133

 

 

반응형

댓글