2개
df_a, df_b
df_b, df_c
인덱스는 새로 들어가지 않고, 기존값 그대로 가져옴 -> 새로 지정하려면 인덱스 리셋 필요
Join
🔗 Node 05. 여러 개의 테이블 사용하기-JOIN 종류 4가지 참고
- Inner join: 공통키(디폴트)
- Left join: 왼쪽 기준으로 모든 행, 오른쪽은 일치하는 것만
- Right join: 오른쪽 기준으로 모든 행, 왼쪽은 일치하는 것만
- Outer join: 모두, 불일치는 NaN으로
기본은 inner join
outer join
left join
right join
기준 컬럼 지정: on = '컬렴명'
key가 아닌 다른 이름의 컬럼 실험하기
겹치는 내용이 없으니, 아무것도 나오지 않음.(∵디폴트는 완전히 겹치는 것만)
컬럼명 : key
컬럼명 : id
join type까지 지정하면
원하는 컬럼 지정 : .set_index('컬럼명')
join은 디폴트 : Left!
outer join
inner join
두 데이터 파일이 내용만 다르고 컬럼은 일치!
concat으로 이어붙이기 -> salary_df로 저장
인덱스 중복 발생했을 것임.
drop = True, inplace = True
사용해서 드랍하기국가 표현이 조금 다른 부분이 있어 변경 후 합칠 것.
고유값 확인 후 변경
데이터 합치기 : merge
cpi에서는 Last만 필요하므로 나머지 드랍해서 정리
cpi 지수라는 것을 명확히 표현하기 위해 Last -> CPI
merge, join 추가 특징
- merge: 공통 컬럼 -> suffix 자동 생성(SQL 스타일)
- join: 공통 컬럼 -> suffix 수동 생성
Age에 Null Value가 있고, CPI가 숫자가 아닌 object로 되어 있음.
CPI를 숫자형으로 변경 : pd.to_numeric
확인
Age
Years of Experience 음수 처리
Years of Experience가 82년?
groupby를 쓰지 않는 일반적 방법
groupby
우선 숫자만 반영해서 출력해보기
Salary만 보고 싶다면
국가별 평균 연봉이 알고 싶다면
min, sum 한꺼번에 : agg
reset_index()로 각 컬럼으로 만들어 편하게 확인
원하는 연산 지정 : aggfunc = '연산명'
numby 연산 불러오기도 가능
sum
임의 데이터 만들기
pivot table 생성
quarter 제거 -> new_sales_df로 저장
임의 데이터 작성
seabon 불러오기(Warnings 무시)
log를 사용해서 스케일 잡아주기
기존
log 적용
np.log() -> 로그 적용, np.exp() -> 로그를 다시 숫자로 되돌리기
참고: 인코딩을 왜 해?
- 대부분의 머신 러닝 모델은 숫자가 아니면 제대로 인식하지 않음 -> 인코딩 필요
- 문자열의 경우, 실제로는 그렇지 않더라도 수치로 매핑을 잘못하면 크기를 비교할 수 있음.
- 1과 2로 사용하면 안됨.
- 0과 1로 매핑할 것!
- salary_df의
Senior
컬럼도 그런 형태!
- 3개 이상의 컬럼이 있다면..
- Salary를 모델에서 예측
- 선형 모델의 경우, 0과 1이 바뀌면 해당 연산을 맞춰 변경하면 됨.
🧐 왜 구글 코랩에서는 True, False로 나올까?
- pandas 업데이트로 인해 값이 True, False로 변경되었다고 함!
원핫 인코딩에서 0,1이 아니고 False,True가 나옴
고유값 확인하기
Job Title 살펴보기
고유값들이 상당히 많은 편
값을 정리한 job.csv 사용
merge로 값 합치기(key를 기준으로 하는 것이 좋기 때문)
Job Title은 더이상 사용하지 않으니, 드랍
이전보다는 정리가 잘 되었음.
원핫 인코딩 재진행
평균
표준 편차
79개의 칼럼을 모두 일일이 스케일링하기엔 무리가 있음.
학습
기본적으로 데이터프레임으로 감싸도, 컬럼 이름은 사라지기 때문에 적용
학습
데이터 프레임 적용
학습
데이터 프레임 적용
참고 : 값의 의미
Standard Scaling
Robust Scaling
Min-Max Scaling
Principal Component Analysis
주성분 분석
데이터 차원(=변수의 개수) 축소
데이터 주요 특성은 유지 -> 차원 축소 -> 계산에 효율성 부여
기존의 변수 개수만큼 주성분을 뽑아낸다!
마지막 주성분일수록 적은 데이터를 가지고 있음.
decomposition 사용
학습
변환(데이터 프레임 적용)
이것도 학습&변환 한번에 가능 : fit_transform
explained_variance_ratio_