Python/NumPy | Pandas

[Python] Pandas - 데이터프레임 합성 2

비번변경 2022. 12. 27. 20:56

개요

2022.12.25 - [Python] Pandas - 데이터프레임 합성 1에 이어서 두 개 이상의 DataFrame을 합치는 병합 및 연결 방법을 정리한다.

 

 

데이터 연결(concat)

기준 열을 사용하지 않고 데이터를 단순히 연결한다. 기본적으로 위/아래로 데이터 행을 연결하며, 인덱스 값 중복이 발생할 수 있다.

 

Series 연결

s1 = pd.Series([0, 1], index=['A', 'B'])
s2 = pd.Series([2, 3, 4], index=['A', 'B', 'C'])
s1
s2
pd.concat([s1, s2])

# 실행 결과
A    0
B    1
dtype: int64

A    2
B    3
C    4
dtype: int64

A    0
B    1
A    2
B    3
C    4
dtype: int64

연결할 데이터 목록을 list로 전달한다.

 

DataFrame 열 연결

좌우로 데이터를 연결할 때는 axis=1로 설정하면 된다.

df1 = pd.DataFrame(
    np.arange(6).reshape(3, 2),
    index=['a', 'b', 'c'],
    columns=['데이터1', '데이터2'])

df2 = pd.DataFrame(
    5 + np.arange(4).reshape(2, 2),
    index=['a', 'c'],
    columns=['데이터3', '데이터4'])
df1
df2
pd.concat([df1, df2], axis=1)

# 실행 결과
   데이터1  데이터2
a     0     1
b     2     3
c     4     5

   데이터3  데이터4
a     5     6
c     7     8

   데이터1  데이터2  데이터3  데이터4
a     0     1   5.0   6.0
b     2     3   NaN   NaN
c     4     5   7.0   8.0

 

 

 

참고 문서

데이터 사이언스 스쿨 - 4.6 데이터프레임 합성