모르는 부분이 있어 질문 드립니다.
239
작성한 질문수 9
결정트리 실습 부분에서
def
get_new_feature_name_df(old_feature_name_df):
feature_dup_df = pd.DataFrame(data = old_feature_name_df.groupby('column_name').cumcount(),
columns = ['dup_cnt'])
feature_dup_df = feature_dup_df.reset_index()
A = old_feature_name_df.reset_index()
new_feature_name_df = pd.merge(old_feature_name_df.reset_index(), feature_dup_df, how = 'outer')
new_feature_name_df['column_name'] = new_feature_name_df[['column_name',
'dup_cnt']].apply(lambda x : x[0]+'_'+str(x[1])
if x[1] >0 else x[0] , axis=1)
new_feature_name_df = new_feature_name_df.drop(['index'], axis=1)
# print(feature_dup_df)
# print(A)
# print(new_feature_name_df)
return A
get_new_feature_name_df(feature_name_df)
pd.merge를 통하여 병합한다는 부분까지는 이해를 했는데,
new_feature_name_df['column_name'] = new_feature_name_df[['column_name',
'dup_cnt']].apply(lambda x : x[0]+'_'+str(x[1])
if x[1] >0 else x[0] , axis=1)
lambda 부분에서 전 강의를 복습하고 와도 이해가 안가 질문남깁니다. 어떻게 해석 하면 되는지 궁금합니다.
답변 1
0
안녕하십니까,
new_feature_name_df[['column_name', 'dup_cnt']]
는 컬럼명(column_name)과 해당 컬럼명으로 중복되는 횟수(dup_cnt)를 가지고 있습니다. 만약 해당 컬럼이 중복이 되지 않는 고유한 컬럼명일때 dup_cnt는 0 입니다. 중복이 될 경우 중복이 될 경우 개별 중복 인덱스 값을 가집니다. 즉 특정 컬럼명이 2개가 중복 될 경우 각각 1, 2 로 dup_cnt가 할당 됩니다.
new_feature_name_df[new_feature_name_df['dup_cnt'] > 0] 의 일부 결과는 아래와 같습니다.
| column_index | column_name | dup_cnt |
|---|
| 317 | fBodyAcc-bandsEnergy()-1,8_1 | 1 | |
| 318 | fBodyAcc-bandsEnergy()-9,16_1 | 1 | |
| 319 | fBodyAcc-bandsEnergy()-17,24_1 | 1 | |
| 320 | fBodyAcc-bandsEnergy()-25,32_1 | 1 |
new_feature_name_df[['column_name', 'dup_cnt']].apply(lambda x : x[0]+'_'+str(x[1]) if x[1] >0 else x[0] , axis=1) 를 적용하면 개별 row별로 두개의 값이 apply lambda 식으로 입력 됩니다. x[0]와 x[1]이며 x[0]는 column_name, x1은 dup_cnt입니다.
lambda x : x[0]+'_'+str(x[1]) if x[1] >0 는 만약 x[1] 즉 dup_cnt > 0 보다 클 경우 원본 컬럼명 x[0]에 '_' 그리고 x1값을 결합해서 새로운 컬럼으로 만듭니다. 예를 들어 fBodyAcc-bandsEnergy()-1,8 이라는 컬럼명이 2개가 있을 때 fBodyAcc-bandsEnergy()-1,8_1, fBodyAcc-bandsEnergy()-1,8_2로 변경합니다.
else x[0] 은 x[1] 즉 dup_cnt > 0 이 아닌 경우(중복이 없는 경우)는 기존 컬럼값을 그대로 이용합니다.
감사합니다.
안녕하세요 열심히 수강중인 학생입니다
0
58
2
정수 인덱싱
0
65
2
넘파이 오류
0
83
2
11강 numpy의 axis 축 질문 드립니다.
0
84
2
Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.
0
76
2
Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.
0
68
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
73
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
62
2
5강 강의 오류가 있어요.
0
81
1
실무에서 LTV 관련 모델 선택 질문입니다!
0
71
2
14강 강의 듣는중에 궁금한게 있어서 질문합니다~
0
67
3
파이썬 다운그레이 후 사이킷런 재설치
0
115
2
좋은 강의 감사합니다.
0
70
2
scoring 함수 음수값
0
66
2
6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?
0
98
2
분류 평가 정확도 예측
0
75
2
안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.
0
96
1
카카오톡 채널 있나요
0
104
1
혹시 강의에서 사용하시는 ppt 받을 수 있는건가요
0
187
2
pca 스케일링 관련하여 질문드립니다.
0
100
2
주피터 대신 구글 코랩
0
169
2
강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?
0
145
2
실루엣 스코어..
0
82
2
float64 null 값 처리 방법
0
99
2





