728x90
반응형
for col in dataframe 을 하게 되면, dataframe[col] 출력시, dataframe에 담긴 모든 컬럼명들이 출력되게 됩니다.
import pandas as pd
import numpy as np
df1 = pd.DataFrame(np.random.randn(4,3),columns=['n1','n2','n3']) #DataFrame 생성
for i in df1:
print(i)
----
n1
n2
n3
df1은 dataframe 형태인데, for문을 돌려서 출력해 보면, 위의 보이는 바와 같이 컬럼명만 출력이 됩니다.
즉, for문의 경우 dataFrame을 반복 요소에 넣으면 Column이 출력됩니다.
for <반복자> in <반복할 수 있는 요소>:
<코드>
사례로 확인을 해볼게요.
app_train 이라는 데이터 프레임이 있습니다.
아래 for col in app_train: 을 하면, 알아서 app_train[col]의 대괄호[ ]는 app_train 데이터프레임의 모든 컬럼명을 의미하고 실행합니다.
# 이 노트북에서는 범주형변수의 유니크한 값이 2개일경우 Label encoding을 사용하고
#그 이상일 경우 One-hot encoding을 사용한다.
le=LabelEncoder()
le_count=0
# 컬럼별로 iterate 돌기
for col in app_train:
# df[리스트]
# dataframe의 경우
if app_train[col].dtype=='object':
# 데이터타입이 object이고 값의 종류가 두개 이하일경우,
if len(list(app_train[col].unique())) <=2:
# train과 test에 동일하게 라벨인코딩을 하기위해 train기준으로 fit한값을 train,test에 동일하게 transform해줌
le.fit(app_train[col])
# train-set, test-set 둘다 Transform
app_train[col]=le.transform(app_train[col])
app_test[col]=le.transform(app_test[col])
# 라벨인코딩을 한 컬럼이 몇개인지 카운트
le_count+=1 # Q 어떻게 카운트하는 건지?
print('%d columns were label encoded.' % le_count)
실제로 아래 코드를 쳐보면, app_train 데이터프레임의 컬럼명들이 나오는 것을 확인하실 수 있습니다.
728x90
반응형
'Python_Basic' 카테고리의 다른 글
if __name__ == "__main__": 은 무엇인가요? 쉽게 정리! (0) | 2022.03.21 |
---|---|
여러 데이터 프레임 concat 후 인덱스 정렬하기 (0) | 2022.03.17 |
[Python. Seaborn] FacetGrid, PairGrid, PairPlot, kdeplot (0) | 2022.02.24 |