본문 바로가기
self.python

[python] 데이터 프레임 합치기 - concat, append, join

by 톤토니 2022. 6. 21.
반응형

데이터프레임 합치기

데이터 프레임 합치기 - concat, append, join

 

데이터 프레임끼리 합치는 방법은 여러가지가 있다. 세로로 합칠수도 있고, 가로로 합칠수도 있다.

 

0. 데이터 프레임 준비

import pandas as pd


myList1 = [['Mary', 23],
          ['Kate', 25]]

myList2 = [['Mark', 27],
          ['Maxi', 30]]

mycol = ['Name', 'Age']

df1 = pd.DataFrame(myList1, columns = mycol)
df2 = pd.DataFrame(myList2, columns = mycol)

이렇게 간단한 데이터 프레임 두 개를 준비해보았다.

 

 

 

1-1. 세로 방향으로 합치기

concat 또는 append를 사용해서 데이터 프레임 두개를 세로 방향으로 합칠 수 있다.

 

df = pd.concat([df1, df2])
df

df1 의 아래에 df2가 잘 합쳐졌음을 확인할 수 있다. 여기서 index를 0, 1, 2, 3 이렇게 써주려면 ignore_index = True 가 필요하다.

 

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

 

df2의 아래에 df1을 붙이고 싶으면 서로 순서를 바꾸면 된다.

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

 

1-2. 세로 방향으로 합치기

append는 concat과 비슷하게 결과가 나오지만 쓰는 방법이 조금 다르다.

df = df1.append(df2, ignore_index=True)
df

append의 경우 df1.append(df2) 를 한다고 해서 df1 자체가 변하는 것은 아니다.

 

마찬가지로 위 아래를 바꾸고 싶다면 데이터프레임의 순서를 바꾸면 된다.

df = df2.append(df1, ignore_index=True)

 

 

 

2. 가로 방향으로 합치기

위에서 만든 4명의 이름과 나이가 적힌 데이터 프레임 df 에 새로운 데이터 프레임을 join() 을 이용하여

가로 방향으로 합쳐보자.

 

myList3 = ['A', 'B','AB', 'O']
mycol3 = ['bloodType']
df3 = pd.DataFrame(myList3, columns = mycol3)
df3

df.join(df3)

이렇게 잘 합쳐진것을 확인할 수 있다. 여기서 df에 join을 했다고 해서 df 자체가 변하는 것은 아니다.

df를 다시 출력해보면 혈액형에 대한 열은 빠져있을 것이다. df 를 완전히 저렇게 바꾸려면 새로 선언하면 된다.

df = df.join(df3)

 

 

3. 총 정리

import pandas as pd

myList1 = [['Mary', 23],
          ['Kate', 25]]

myList2 = [['Mark', 27],
          ['Maxi', 30]]

mycol = ['Name', 'Age']

df1 = pd.DataFrame(myList1, columns = mycol)
df2 = pd.DataFrame(myList2, columns = mycol)

df = pd.concat([df1, df2], ignore_index=True)
df = df1.append(df2, ignore_index=True)		# 동일함

myList3 = ['A', 'B','AB', 'O']
mycol3 = ['bloodType']
df3 = pd.DataFrame(myList3, columns = mycol3)

df = df.join(df3)
df

반응형

댓글