• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

질문있습니다

21.12.07 13:04 작성 조회수 116

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)