반응형
데이터 프레임 합치기 - 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
반응형
'self.python' 카테고리의 다른 글
[python] 데이터 프레임 전처리 - replace 이용하기 (0) | 2022.07.03 |
---|---|
[python] 숫자 데이터 자리수 맞추어 표시하기(앞에 0 채워주기) - zfill() (0) | 2022.06.27 |
[python] 데이터프레임 데이터 타입 바꾸기 (0) | 2022.06.20 |
[python] matplot 그래프 그리기 유용한 꿀팁! - (2) (0) | 2022.06.13 |
[python] matplot 그래프 그리기 유용한 꿀팁! - (1) (0) | 2022.06.12 |
댓글