본문 바로가기
카테고리 없음

[Pandas] 엑셀 함수 대체하기

by 太热了 2022. 4. 1.
  • 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())

 

댓글