데이터 분석 작업을 할 때, 여러 데이터셋을 합쳐야 하는 경우가 종종 있습니다. 판다스(Pandas) 라이브러리는 이러한 작업을 쉽게 수행할 수 있도록 도와줍니다. 이번 포스트에서는 판다스를 사용하여 데이터를 합치고 결합하는 다양한 기술에 대해 살펴보겠습니다.
목차
1. 데이터 병합(Merge)
판다스의 merge 함수를 사용하면 하나 이상의 키(기준 열)를 사용하여 데이터프레임을 병합할 수 있습니다. 여러 데이터프레임의 공통 열이나 인덱스를 기준으로 데이터를 병합할 때 유용합니다.
예를 들어, 다음과 같이 두 개의 데이터프레임이 있다고 가정해봅시다.
import pandas as pd
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],
'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'],
'value': [5, 6, 7, 8]})
이제 key 열을 기준으로 데이터프레임을 병합해 보겠습니다.
merged_df = pd.merge(df1, df2, on='key')
print(merged_df)
결과:
key value_x value_y
0 B 2 5
1 D 4 6
2. 인덱스를 기준으로 데이터 병합하기
merge 함수를 사용할 때 인덱스를 기준으로 데이터를 병합하고자 할 때는 left_index=True 또는 right_index=True 옵션을 사용합니다.
예를 들어, 다음과 같이 두 개의 데이터프레임이 있다고 가정해봅시다.
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
'B': ['B0', 'B1', 'B2']},
index=['K0', 'K1', 'K2'])
df2 = pd.DataFrame({'C': ['C0', 'C1', 'C2'],
'D': ['D0', 'D1', 'D2']},
index=['K0', 'K2', 'K3'])
이제 인덱스를 기준으로 데이터프레임을 병합해 보겠습니다.
merged_df = pd.merge(df1, df2, left_index=True, right_index=True, how='outer')
print(merged_df)
결과:
A B C D
K0 A0 B0 C0 D0
K1 A1 B1 NaN NaN
K2 A2 B2 C1 D1
K3 NaN NaN C2 D2
위 예제에서 how='outer' 옵션은 합집합을 수행하여 모든 인덱스를 포함한 결과를 반환합니다.
3. 데이터 연결(Concatenate)
판다스의 concat 함수를 사용하면 일련의 데이터를 빠르고 쉽게 연결할 수 있습니다.
예를 들어, 다음과 같이 두 개의 시리즈가 있다고 가정해봅시다.
s1 = pd.Series(['a', 'b'])
s2 = pd.Series(['c', 'd'])
이제 시리즈를 연결해 보겠습니다.
concatenated_series = pd.concat([s1, s2])
print(concatenated_series)
결과:
0 a
1 b
0 c
1 d
4. 데이터 조인(Join)
join 메서드를 사용하면 열을 기준으로 데이터프레임을 조인할 수 있습니다.
예를 들어, 다음과 같이 두 개의 데이터프레임이 있다고 가정해봅시다.
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
'B': ['B0', 'B1', 'B2']},
index=['K0', 'K1', 'K2'])
df2 = pd.DataFrame({'C': ['C0', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2']},
index=['K0', 'K2', 'K3'])
이제 열을 기준으로 데이터프레임을 조인해 보겠습니다.
joined_df = df1.join(df2, how='outer')
print(joined_df)
결과:
A B C D
K0 A0 B0 C0 D0
K1 A1 B1 NaN NaN
K2 A2 B2 C2 D1
K3 NaN NaN C3 D2
위 예제에서 how='outer' 옵션은 합집합을 수행하여 모든 열을 포함한 결과를 반환합니다.
5. 결론
이번 포스트에서는 판다스를 사용하여 데이터를 합치고 결합하는 방법에 대해 알아보았습니다. 데이터 분석을 할 때, 데이터를 효과적으로 관리하기 위해서는 데이터를 합치는 방법에 대해 잘 이해하고 있어야 합니다. 판다스의 다양한 기능을 이용하여 데이터를 쉽게 합치고 결합하여 효율적인 작업을 수행할 수 있습니다.