본문 바로가기

BLOG/데이터분석

[데이터분석] 데이터프레임 concat() 으로 병합 시, 인덱스 재배열 하는 방법

 

여러 개의 데이터프레임은 concat() 함수로 위아래 또는 좌우로 병합할 수 있는데요, 이때 인덱스는 자동으로 재배열되어서 나오지 않는답니다. 따라서 어떻게 해야 인덱스를 재배열할 수 있는지 코드를 보면서 살펴보도록 하겠습니다.

 

 

먼저, 아래와 같은 두 데이터프레임이 있다고 가정해보겠습니다.

 

	temp	item	count	price	rating
0	hot	coffee	1	3000	4.5
1	ice	juice	5	4000	3.0
2	ice	ade	2	5000	4.0
	index	temp	item	count	price	rating
0	3	hot	milk	4	2000	2.5
1	4	hot	tea	3	4000	3.0
2	5	ice	water	2	1000	4.5

 

이제 이 두 데이터프레임을 합치려고 하는데요, concat() 함수 안에 합칠 데이터프레임을 다음과 같이 입력하면 됩니다.

 

pd.concat([df1, df2])

 

	temp	item	count	price	rating	index
0	hot	coffee	1	3000	4.5	NaN
1	ice	juice	5	4000	3.0	NaN
2	ice	ade	2	5000	4.0	NaN
0	hot	milk	4	2000	2.5	3.0
1	hot	tea	3	4000	3.0	4.0
2	ice	water	2	1000	4.5	5.0

 

병합된 데이터프레임을 보면 인덱스가 정리가 안 되어 있는데요, 만약 순서대로 재배열을 하고 싶다면 concat() 함수 안에 'ignore_index=True' 라는 인자를 넣어야 한답니다.

 

다시 한번 해당 인자를 추가해 병합을 해보겠습니다.

 

pd.concat([df1,df2], ignore_index=True)

 

	temp	item	count	price	rating	index
0	hot	coffee	1	3000	4.5	NaN
1	ice	juice	5	4000	3.0	NaN
2	ice	ade	2	5000	4.0	NaN
3	hot	milk	4	2000	2.5	3.0
4	hot	tea	3	4000	3.0	4.0
5	ice	water	2	1000	4.5	5.0

 

인자를 추가해서 실행한 결과, 인덱스가 재배열되었음을 확인할 수 있습니다.