군침이 싹 도는 코딩

Python pandas concat / merge 본문

Python/Pandas

Python pandas concat / merge

mugoori 2022. 11. 25. 17:48

데이터프레임을 합치는 함수 컨캣과 멀지를 알아보자

컨캣은 컬럼 이름이 모두 같으면  갯수제한없이 데이터프레임을 하나로 합쳐준다

멀지는 두 데이터 프레임에 공통 컬럼이 있으면 그 컬럼을 기준으로 하나로 합쳐준다

멀지는 두개의 데이터 프레임만 합칠수 있다.

또한 멀지는 기준이되는 컬럼에 공통된 데이터만 가져온다.

 

 

3개의 데이터 프레임이 있다 좌측부터 df1 df2 df3

 

 

컨캣으로 합치기

사용법
pd.concat([df1,df2,df3'''''])
pd.concat([df1,df2])

pd.concat([df1,df2,df3])

# 3개의 데이터 프레임의 컬럼이 모두 같기때문에 컴캣으로 합쳐준다

 

왼쪽부터 엔지니어 셀러리 파이낸스 데이터

 

 

멀지로 합치는법

사용법
pd.concat([df1,df2,on=기준이되는컬럼,how=left or right])
df_all=pd.concat([df_Engineering_dept,df_Finance_dept])

df_all 데이터프레임

# 컬럼이 같은 엔지니어 파이낸스프레임을 컴캣으로 합치고 df_all 에 저장하였다

 

 

pd.merge(df_all , df_salary , on='Employee ID')

# 이후 df_all 과 df_salary 프레임을 멀지로 합쳤다 이때 뒷쪽에 how를 사용해 왼쪽 또는 오른쪽을 기준으로 합칠수있다

이 프레임을 보면 현재 6번 Bill의 데이터가 빠져있다 그 이유는 셀러리 프레임쪽에 6번이 없기때문이다

멀지는 기준이되는 컬럼에 같은 데이터가 있는것만 합쳐주기때문이다

따라서 없는 데이터도 나타내주려면 how를 사용한다

pd.merge(df_all,df_salary,on='Employee ID',how='left')

# how=left를 써 df_all 기준으로 합쳐져서 6번 Bill이 포함되어있다.