파생 변수란 기존의 데이터를 가지고 새롭게 가공해서 만든 새로운 컬럼이다.
예제 : 판다스에서 컬럼 추가하기
* emp 데이터 프레임에 sal의 데이터에 12를 곱하여 연봉을 의미하는 year 라는 컬럼을 추가해보자.
1 2 3 4 | import pandas as pd emp=pd.read_csv("c:\\data\\emp3.csv") emp['year']=emp['sal']*12 print(emp) |
확인해보면 맨 오른쪽에 sal에 12를 곱한 year라는 컬럼이 새로 생겨난 것이 보인다.
예제 : emp csv파일과 dept csv 파일을 조인하여 이름과 부서 위치를 출력하기
1 2 3 4 5 | import pandas as pd emp=pd.read_csv("c:\\data\\emp3.csv") dept=pd.read_csv("c:\\data\\dept3.csv") result=pd.merge(emp,dept,how='inner',on='deptno') print(result[['ename','loc']]) |
예제 : emp 데이터 프레임에 dept 데이터 프레임에 있는 loc 컬럼과 값을 옮겨 갱신시키기
1 2 3 4 5 6 | import pandas as pd emp=pd.read_csv("c:\\data\\emp3.csv") dept=pd.read_csv("c:\\data\\dept3.csv") result=pd.merge(emp,dept,how='inner',on='deptno') emp['loc']=result['loc'] print(emp) |
아까 처음에 연봉 컬럼을 만들었던 것처럼 할당해주면 된다.
# 이렇게 파생 변수를 추가하는 이유
-> 좋은 데이터를 주고, 학습시켜 예측을 잘하기 위해서 ( 머신 러닝 )
ex) emp 테이블에서 퇴사할 것 같은 사원이 누군지 예측
-> 자기가 속한 직군의 평균 월급보다 더 작은 월급을 받는다면 퇴사할 가능성이 높지 않을까?
- 학습시킬 때, 일반 월급 컬럼만 있는 것보다 직업별 평균 월급 컬럼이 함께 추가된 것이 예측하기 좋은 데이터이다.
예제 : 직업, 직업별 평균 월급을 출력하기
1 2 3 4 | import pandas as pd emp=pd.read_csv("c:\\data\\emp3.csv") result=emp.groupby('job')['sal'].mean().reset_index() print(result) |
1 2 3 4 5 | import pandas as pd emp=pd.read_csv("c:\\data\\emp3.csv") result=emp.groupby('job')['sal'].mean().reset_index() result['sal']=result['sal'].astype(int) print(result) |
1 2 3 4 5 | import pandas as pd emp=pd.read_csv("c:\\data\\emp3.csv") result=emp.groupby('job')['sal'].mean().reset_index() result2=pd.merge(emp,result,how='inner',on='job') print(result2) |
1 2 3 4 5 6 | import pandas as pd emp=pd.read_csv("c:\\data\\emp3.csv") result=emp.groupby('job')['sal'].mean().reset_index() result2=pd.merge(emp,result,how='inner',on='job') emp['job_avgsal']=result2['sal_y'] print(emp) |
예제 : 해당 사원이 근무하는 부서번호의 평균 월급을 sal_avg라는 이름으로 파생 변수를 생성하기
1 2 3 4 5 6 | import pandas as pd emp=pd.read_csv("c:\\data\\emp3.csv") result=emp.groupby('deptno')['sal'].mean().reset_index() result2=pd.merge(emp,result,how='inner',on='deptno') emp['sal_avg']=result2['sal_y'] print(emp) |
# 오름차순, 내림차순 정렬하기
예제 : emp 데이터 프레임을 사원의 월급이 높은 순으로 정렬하기
1 2 3 4 5 | import pandas as pd emp=pd.read_csv("c:\\data\\emp3.csv") result=emp.sort_values('sal',ascending=False) print(result) |
정렬하는 방법은
.sort_values( 정렬할 기준 컬럼, ascending = True --> 오름차순, ascending = False --> 내림차순 ) 을 사용하면 된다.
예제 : 이번에는 월급 기준 오름차순으로 정렬하기
1 2 3 4 | import pandas as pd emp=pd.read_csv("c:\\data\\emp3.csv") result=emp.sort_values('sal',ascending=True) print(result) |
'나 취준생 > 파이썬' 카테고리의 다른 글
파이썬으로 막대 그래프 그리기 (matplotlib.pyplot) (0) | 2020.12.08 |
---|---|
파이썬 문자열 관련 함수들 (0) | 2020.12.08 |
Pandas 데이터 유형 변환(Apply), 결측치 확인(Isnull) (0) | 2020.12.07 |
자료형의 특정 조건 값만 추출해내는 함수 (filter) (0) | 2020.12.07 |
오라클 그룹 함수를 Pandas로 (0) | 2020.12.04 |