본문 바로가기

BLOG/데이터분석

[데이터분석] 데이터프레임 : 데이터프레임 사이에 다른 데이터프레임 삽입하기 - concat()

concat() 함수는 데이터프레임을 위/아래 또는 좌/우로 병합해주는 함수로 잘 알려져 있는데요, concat() 함수로 한 데이터프레임 사이에 다른 데이터프레임을 삽입할 수도 있답니다.

한번 코드를 보면서 살펴보도록 하겠습니다.

 

 

- concat() : 데이터 프레임 사이에 다른 데이터 프레임 삽입하기

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

 

# df1

	class	num	math
0	A	1	97
1	B	2	67
2	F	4	89
3	G	5	76
4	H	6	79

 

#df2

class	num	math
0	C	3	89
1	D	4	78
2	E	5	97

 

위와 같은 데이터프레임 df1, df2가 있을 때, 만약 df1의 1번째 행과 2번째 행 사이에 df2를 삽입하려면 아래와 같이 코드를 작성하면 됩니다.

 

row = 2
new_df = pd.concat([df1[0:row],df2,df1[row:]]).reset_index(drop=True)

 

먼저, df2가 삽입될 행은 2번재 행부터 이므로, row = 2 라는 변수를 만들어줍니다.

그리고, 마지막 줄 코드를 보면 pd.concat() 함수와 인덱스를 재배열 하기 위한 reset_index() 함수를 사용했습니다.

 

한편, concat() 함수는 인자를 [병합할데이터프레임1 + 병합할데이터프레임2 + 병합할데이터프레임3 + ,,, ]와 같이 코드를 입력하면 해당 데이터프레임이 차례로 병합되는데요, 위 코드처럼 [df1[0:row], df2, df1[row:]])df1의 0부터 1행까지의 데이터프레임df2 데이터프레임을 병합시키고 그 아래 df1의 2행부터 마지막행까지의 데이터를 추가한다는 의미를 담고 있습니다.

 

따라서 위와 같이 코드를 입력하고, 새로 만든 데이터 프레임을 출력하면 아래와 같은 데이터프레임이 출력됩니다.

 

	class	num	math
0	A	1	97
1	B	2	67
2	C	3	89
3	D	4	78
4	E	5	97
5	F	4	89
6	G	5	76
7	H	6	79