혼합 유형의 열이있는 Pandas Dataframe에서 모든 숫자 열에 0이 포함 된 행을 제거하는 방법은 무엇입니까?

결코 성자

다음 데이터 프레임이 있습니다.

import pandas as pd
df = pd.DataFrame({'a':[0,0,1,1], 'b':[0,1,0,1],'tag':['apple','orange','grapes','lemon']})
df = df[["tag","a","b"]]

다음과 같이 보입니다.

In [37]: df
Out[37]:
      tag  a  b
0   apple  0  0
1  orange  0  1
2  grapes  1  0
3   lemon  1  1

내가하고 싶은 것은 숫자 열이 0 인 행을 제거하여 결과를 얻는 것입니다.

tag     a  b
orange  0  1
grapes  1  0
lemon   1  1

어떻게 할 수 있습니까?

실제로 열 수는 2 개 이상일 수 있으며 열 이름은 변경 될 수 있습니다. 그래서 우리는 일반적인 해결책이 필요합니다.

나는 이것을 시도했지만 효과가 없습니다.

df[(df.T != 0).any()]
마리우스

이 답변에는 몇 가지 다른 사항이 있습니다. 특히 혼란스러운 것이 있으면 알려주십시오.

df.loc[~ (df.select_dtypes(include=['number']) == 0).all(axis='columns'), :]

그래서:

  • 숫자 열만 찾기위한 필터링
  • .all()행이 아닌 열에 메서드 적용 (기본값은 행)
  • 부정 ~
  • 결과 부울 계열을 df.loc[]

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관