인프런 커뮤니티 질문&답변

최원준141124님의 프로필 이미지
최원준141124

작성한 질문수

공공데이터로 파이썬 데이터 분석 시작하기

[17/20] pandas 의 concat 으로 두 개의 데이터프레임 하나로 합치기

질문있습니다

작성

·

158

1

선생님 강의 정말 재밌게 잘 보고 있습니다!

 concat을 이용해서 데이터 합치는 연습을 혼자서 해보고 있었는데

영상 속에서는 pd. concat([df1, df2])이런식으로 하면

 알아서 인덱스도 1부터 매겨지고, 연도도 오름차순으로 정렬이 되었는데요

저는 혼자 따로해보니 연도가 들쑥 날쑥하고 인덱스 번호도 들쑥 날쑥합니다..

왜그런가 이것 저것 살펴보니

저는 pd.concat([df2, df1])처럼 순서를 앞뒤 바꾸어놨었네요

근데 이  순서에 따라 어떻게 결과값이 달라지는지 궁금해서 질문 올립니다!

답변 1

0

박조은님의 프로필 이미지
박조은
지식공유자

안녕하세요.

concat 의 기본값은  axis=0 으로 같은 컬럼의 이름끼리 행을 위아래로 붙입니다.

반대로 axis=1 이라면 인덱스값을 기준으로 컬럼을 옆으로 붙입니다.

이 때, 일관되게 값이 병합되게 하려면 기준이 되는 컬럼이나 인덱스 값이 같아야 합니다.

 

예를 들어 axis=0 으로 행끼리 붙여준다면 컬럼명이 같은 데이터를 행으로 붙여줍니다.

이때 컬럼명에 오타나 띄어쓰기 등으로 컬럼명이 약간이라도 다르다면 같은 컬럼으로 붙지 않습니다.

"컬럼 1", "컬럼1" 이 두 개의 컬럼은 같은 이름으로 보이지만 앞에 컬럼은 띄어쓰기가 들어 있기 때문에 다른 컬럼으로 인식하고 두 개의 컬럼을 생성하게 됩니다.

하지만 "컬럼1", "컬럼1" 과 같이 컬럼에 띄어쓰기나 눈에 보이지 않는 공백 등이 없다면 같은 컬럼에 데이터가 병합되게 됩니다.

아래 링크는 판다스 공식문서인데 concat 의 여러 예시가 있으니 꼭 참고해 보는 것을 추천합니다.

[Merge, join, concatenate and compare — pandas 1.3.4 documentation](https://pandas.pydata.org/docs/user_guide/merging.html)

최원준141124님의 프로필 이미지
최원준141124

작성한 질문수

질문하기