반응형
특정 열을 제외한 DataFrame의 모든 열을 삭제하는 방법은 무엇입니까?
예를 들어 다음과 같은 데이터 프레임이 있다고 가정해 보겠습니다.
a b c d e f g
1 2 3 4 5 6 7
4 3 7 1 6 9 4
8 9 0 2 4 2 1
다음의 모든 열을 삭제하려면 어떻게 해야 합니까?a
그리고.b
?
이로 인해 다음과 같은 결과가 발생합니다.
a b
1 2
4 3
8 9
저는 다음과 같은 간단한 코드 행을 사용하여 이것들을 삭제하는 방법을 원합니다.a
그리고.b
제가 1000개의 데이터 열을 가지고 있다고 가정해 보겠습니다.
감사해요.
In [48]: df.drop(df.columns.difference(['a','b']), 1, inplace=True)
Out[48]:
a b
0 1 2
1 4 3
2 8 9
또는:
In [55]: df = df.loc[:, df.columns.intersection(['a','b'])]
In [56]: df
Out[56]:
a b
0 1 2
1 4 3
2 8 9
PS는 그것을 하는 가장 관용적인 Panda 방법이 이미 @Wen에 의해 제안되었다는 것을 알아두시기 바랍니다.
df = df[['a','b']]
또는
df = df.loc[:, ['a','b']]
혼합에 추가할 수 있는 또 다른 옵션입니다.가독성을 위해 이 방법을 선호합니다.
df = df.filter(['a', 'b'])
첫 번째 위치 인수가 있는 위치items=[]
보너스
사용할 수도 있습니다.like
논쟁 또는regex
필터링합니다.
다음과 같은 열 집합이 있는 경우 유용합니다.['a_1','a_2','b_1','b_2']
할수있습니다
df = df.filter(like='b_')
결국엔['b_1','b_2']
여러 가지 해결책이 있습니다.
df = df[['a','b']] #1
df = df[list('ab')] #2
df = df.loc[:,df.columns.isin(['a','b'])] #3
df = pd.DataFrame(data=df.eval('a,b').T,columns=['a','b']) #4 PS:I do not recommend this method , but still a way to achieve this
이봐요, 당신이 찾고 있는 것은:
df = df[["a","b"]]
a 및 b 열만 포함된 데이터 프레임을 수신합니다.
삭제할 열보다 더 많은 열만 유지하려면 .isin 문 앞에 "~"를 입력하여 원하는 열을 제외한 모든 열을 선택합니다.
df = df.loc[:, ~df.columns.isin(['a','b'])]
삭제할 열이 두 개 이상 있는 경우20
또는30
목록도 사용할 수 있습니다.축 값도 지정해야 합니다.
drop_list = ["a","b"]
df = df.drop(df.columns.difference(drop_list), axis=1)
언급URL : https://stackoverflow.com/questions/45846189/how-to-delete-all-columns-in-dataframe-except-certain-ones
반응형
'bestsource' 카테고리의 다른 글
Spring Boot 사용자 지정 http 오류 응답? (0) | 2023.07.18 |
---|---|
플라스크에서 비동기 태스크 만들기 (0) | 2023.07.18 |
Oracle에서 선언/시작/종료 블록에서 행을 반환하는 방법은 무엇입니까? (0) | 2023.07.18 |
전체 디렉터리 트리에 대한 줄 끝 부분 변환(Git) (0) | 2023.07.18 |
대용량 .csv 파일 읽기 (0) | 2023.07.18 |