DataScience
article thumbnail
728x90

(10,4)데이터프레임 만들어서 컬럼명을 b,a,a,d로 설정

import pandas as pd

import numpy as np

np.random.seed(1234)

data = pd.DataFrame(np.random.randn(10, 4))

data.columns=['b','a','a','d']

print(data)

data.drop(labels=['a'], axis=1)

import pandas as pd

import numpy as np

np.random.seed(1234)

data = pd.DataFrame(np.random.randn(10, 4))

data.columns=['b','a','a','d']

print(data)

인덱스 첫번째 'a'를 지우고싶어서 컬럼인덱스로 1로 접근했는데 결과값은 엉뚱하게 나온다.

data.drop(data.columns[1], axis=1)

컬럼인덱스 1번 'a'와 이름이 같은 인덱스2번도 지워져 버림

컬럼이름이 같으면 이상하게 작동한다

해결방법

(1)

data = data.iloc[:, [j for j, c in enumerate(data.columns) if j != n]]

우선 drop으로 날리고 n자리에 지우고 싶었던 인덱스 번호만 써주면 나머지는 다시 살아난다.

(2)

column_numbers = [x for x in range(data.shape[1])] # list of columns' integer indices

column_numbers .remove(1) #removing column integer index 0

data.iloc[:, column_numbers] #return all columns except the 0th column

방법 둘다 원리는 같다.

profile

DataScience

@Ninestar

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!