- Pandas의 merge 함수
: 엑셀의 vlookup 함수는 표나 범위에서 첫 번째 열을 기준으로 항목을 찾을 때 사용하는 함수
: pandas의 merge 함수를 사용시 대체 가능하며, 더 많은 옵션 사용 가능
: merge 함수는 두 개의 DataFrame을 특정 열을 기준으로 병합하는 기능 수행
: 기준 열은 on 키워드를 사용하여 지정가능
: 열 이름이 다른 경우, left_on, right_on 키워드를 사용하여 지정 가능
import pandas as pd
df1 = pd.DataFrame(
{
'직원' : ['김철수','이철수','안철수','박철수'],
'부서' : ['재무부','인사부','총무부','인사부']
}
)
df2 = pd.DataFrame(
{
'직원' : ['김철수','이철수','안철수','박철수'],
'근속년수' : [1,3,2,2]
}
)
print(pd.merge(df1,df2,on='직원').to_html())
: 공통된 열이름이 아닌 각각 다른 열이름 기준으로 병합
: df1 '직원'이 아니라 df2 '성명'으로 되어 있음!
import pandas as pd
df1 = pd.DataFrame(
{
'직원' : ['김철수','이철수','안철수','박철수'],
'부서' : ['재무부','인사부','총무부','인사부']
}
)
df2 = pd.DataFrame(
{
'성명' : ['김철수','이철수','안철수','박철수'],
'근속년수' : [1,3,2,2]
}
)
print(pd.merge(df1,df2,left_on='직원',right_on='성명').to_html())
- (조건부) 통계량 계산 함수
: 특정 열의 모든 값에 따른 조건부 통계량을 구하기 위해서는 groupby함수 사용!
: 분할, 적용, 결합의 단계로 구성되어 있음
- 분할 = 지정된 키 값을 기준으로 Dataframe 나누고 분류
- 적용 = 개별 그룹 내에서 집계, 변환, 필터링 함수 계산
- 결합 = 연산 결과를 결과 배열에 병합
import pandas as pd
df = pd.read_csv('http://www.innocoding.co.kr/python_4-5.csv',engine='python')
print('[평균]\n',df.mean())
print('[최대값]\n',df.max())
print('[성별별 신장평균]\n',df.groupby('성별')['신장'].mean())
print('[성별별 신장평균]\n',df.groupby('성별')['체중'].max())
- 다른 컬럼을 참고하여 컬럼 만들기
: if문 작성하고, df['다른컬럼'].apply(함수) 로 새로운 컬럼 만들기
: apply 함수는 series에 포함된 모든 요소에 일괄적으로 함수를 적용하는 문법
[근무시간(퇴근-출근)열, 추가근무(8시간 초과) 열]
import pandas as pd
df = pd.read_csv('http://www.innocoding.co.kr/python_4-6.csv',engine='pyhton')
df['근무시간']=df['퇴근시간']-df['출근시간']
def over_time(time):
if time > 8:
return 'O'
else:
return 'X'
df['추가근무여부'] = df['근무시간'].apply(over_time)
print(df.to_html())
댓글