[PYTHON] 판다에서 한 열을 제외한 모든 열을 선택하는 방법은 무엇입니까?
PYTHON판다에서 한 열을 제외한 모든 열을 선택하는 방법은 무엇입니까?
다음과 같은 데이터 프레임 모양이 있습니다.
import pandas
import numpy as np
df = DataFrame(np.random.rand(4,4), columns = list('abcd'))
df
a b c d
0 0.418762 0.042369 0.869203 0.972314
1 0.991058 0.510228 0.594784 0.534366
2 0.407472 0.259811 0.396664 0.894202
3 0.726168 0.139531 0.324932 0.906575
열 b를 제외한 모든 열을 어떻게 얻을 수 있습니까?
해결법
-
==============================
1.MultiIndex가없는 경우 df.columns는 열 이름의 배열이므로 다음과 같이 할 수 있습니다.
MultiIndex가없는 경우 df.columns는 열 이름의 배열이므로 다음과 같이 할 수 있습니다.
df.loc[:, df.columns != 'b'] a c d 0 0.561196 0.013768 0.772827 1 0.882641 0.615396 0.075381 2 0.368824 0.651378 0.397203 3 0.788730 0.568099 0.869127
-
==============================
2.ix는 사용하지 마십시오. 더 이상 사용되지 않습니다. 이 일을 가장 잘 읽고 관용적 인 방법은 df.drop ()입니다 :
ix는 사용하지 마십시오. 더 이상 사용되지 않습니다. 이 일을 가장 잘 읽고 관용적 인 방법은 df.drop ()입니다 :
>>> df a b c d 0 0.175127 0.191051 0.382122 0.869242 1 0.414376 0.300502 0.554819 0.497524 2 0.142878 0.406830 0.314240 0.093132 3 0.337368 0.851783 0.933441 0.949598 >>> df.drop('b', axis=1) a c d 0 0.175127 0.382122 0.869242 1 0.414376 0.554819 0.497524 2 0.142878 0.314240 0.093132 3 0.337368 0.933441 0.949598
기본적으로 .drop ()는 내부에서 작동하지 않습니다. 불길한 이름에도 불구하고, df는이 과정에서 무사하게됩니다. df에서 b를 영구히 제거하려면 df.drop ( 'b', inplace = True)를 수행하십시오.
df.drop ()는 또한 레이블리스트를 받아들입니다. df.drop ([ 'a', 'b'], axis = 1) 열 a와 b를 삭제합니다.
-
==============================
3.
df[df.columns.difference(['b'])] Out: a c d 0 0.427809 0.459807 0.333869 1 0.678031 0.668346 0.645951 2 0.996573 0.673730 0.314911 3 0.786942 0.719665 0.330833
-
==============================
4.다른 방법이 있습니다.
다른 방법이 있습니다.
df[[i for i in list(df.columns) if i != '<your column>']]
원하지 않는 컬럼을 제외한 모든 컬럼을 표시하면됩니다.
-
==============================
5.df.columns.isin ()을 사용할 수 있습니다.
df.columns.isin ()을 사용할 수 있습니다.
df.loc[:, ~df.columns.isin(['b'])]
여러 열을 삭제하려는 경우 다음과 같이 간단합니다.
df.loc[:, ~df.columns.isin(['col1', 'col2'])]
-
==============================
6.@Salvador Dali를 약간 수정하면 제외 할 열 목록을 사용할 수 있습니다.
@Salvador Dali를 약간 수정하면 제외 할 열 목록을 사용할 수 있습니다.
df[[i for i in list(df.columns) if i not in [list_of_columns_to_exclude]]]
또는
df.loc[:,[i for i in list(df.columns) if i not in [list_of_columns_to_exclude]]]
-
==============================
7.나는 최선의 방법은 @ 살바도르 달리에 의해 언급 된 방법이라고 생각합니다. 다른 사람들이 잘못되어있는 것은 아닙니다.
나는 최선의 방법은 @ 살바도르 달리에 의해 언급 된 방법이라고 생각합니다. 다른 사람들이 잘못되어있는 것은 아닙니다.
왜냐하면 하나의 열을 선택하고 하나의 변수에 넣고 나머지 열을 비교 또는 계산 목적으로 넣기를 원하는 데이터 세트가 있기 때문입니다. 그런 다음 데이터 세트의 열을 삭제하면 도움이되지 않을 수 있습니다. 물론 거기에는 유스 케이스가 있습니다.
x_cols = [x for x in data.columns if x != 'name of column to be excluded']
그런 다음 변수 x_cols의 열 컬렉션을 다른 계산을 위해 x_cols1과 같은 다른 변수에 넣을 수 있습니다.
ex: x_cols1 = data[x_cols]
from https://stackoverflow.com/questions/29763620/how-to-select-all-columns-except-one-column-in-pandas by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 더 강력한 HTML 파서를 파이썬 기계화에 연결할 수 있습니까? (0) | 2018.11.18 |
---|---|
[PYTHON] WN 효과를 사용하여 문자열의 감정 / 분위기 감지 (0) | 2018.11.18 |
[PYTHON] 예측 결과를 CSV로 저장 (0) | 2018.11.18 |
[PYTHON] 파이썬에서 여러 파일의 이름 바꾸기 (0) | 2018.11.18 |
[PYTHON] 특정 버전의 Python 용 확장 모듈을 빌드하는 데 필요한 Visual Studio 및 / 또는 MinGW의 버전은 무엇입니까? (0) | 2018.11.18 |