파이썬/파이썬 기초
파이썬 pandas columns 인덱스삭제(컬럼명이 같을 경우)
Ninestar
2022. 12. 14. 01:39
반응형
(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자리에 지우고 싶었던 인덱스 번호만 써주면 나머지는 다시 살아난다.


방법 둘다 원리는 같다.