데이터분석/전처리
Data Preprocessing - 데이터 프레임 통합
2^7
2024. 9. 22. 15:27
데이터 프레임 통합의 이유
실제 데이터 분석 환경에서는 데이터가 여러 소스나 파일에 분산되어 있는 경우가 다수여서 데이터를 통합하여 하나의 데이터 프레임으로 만드는 과정을 통해 통합된 데이터를 기반으로 더 나은 인사이트를 얻고 분석의 일관성을 유지할 수 있음
1. 데이터 프레임 통합 방법
1.1. 행 결합 (Row-wise Concatenation)
- 행 결합은 두 개 이상의 데이터 프레임을 세로로 연결하는 방법
- 주의점은 결합되는 데이터 프레임들의 열 이름이 동일해야 함
- pd.concat() 함수는 기본적으로 데이터 프레임들을 행 기준으로 결합
- axis=0은 행 결합을 의미하고, ignore_index=True는 인덱스를 다시 할당하는 옵션
import pandas as pd
# 두 개의 데이터 프레임 생성
df1 = pd.DataFrame({'id': [1, 2, 3], 'value': [10, 20, 30]})
df2 = pd.DataFrame({'id': [4, 5, 6], 'value': [40, 50, 60]})
# 행 결합
df_concat = pd.concat([df1, df2], axis=0, ignore_index=True)
print(df_concat)
출력값
id value
0 1 10
1 2 20
2 3 30
3 4 40
4 5 50
5 6 60
1.2. 열 결합 (Column-wise Merge)
- 열 결합은 두 개 이상의 데이터 프레임을 가로로 연결하는 방법
- 열 결합은 주로 공통 키를 기반으로 데이터 프레임을 병합할 때 사용(데이터베이스의 JOIN 연산과 비슷한 개념)
- pd.merge() 함수는 데이터베이스의 JOIN처럼 공통된 키(on='id')를 기준으로 데이터를 병합
- how='inner'는 교집합 방식의 병합을 의미하며, 데이터가 양쪽 데이터 프레임 모두에 존재하는 경우에만 결합됨
# 두 개의 데이터 프레임 생성
df3 = pd.DataFrame({'id': [1, 2, 3], 'name': ['Alice', 'Bob', 'Charlie']})
df4 = pd.DataFrame({'id': [1, 2, 3], 'score': [85, 90, 95]})
# 열 결합 (id 기준)
df_merge = pd.merge(df3, df4, on='id', how='inner')
print(df_merge)
출력값
id name score
0 1 Alice 85
1 2 Bob 90
2 3 Charlie 95
열 결합은 how 파라미터를 통해 다양한 방식으로 결합할 수 있음
- inner: 교집합 방식으로 양쪽 데이터프레임에 공통된 값만 병합
- outer: 합집합 방식으로 한쪽에만 존재하는 데이터도 포함하여 결합
- left: 왼쪽 데이터프레임을 기준으로 결합
- right: 오른쪽 데이터프레임을 기준으로 결합
# 예시: outer join
df_outer = pd.merge(df3, df4, on='id', how='outer')
print(df_outer)
id name score
0 1 Alice 85.0
1 2 Bob 90.0
2 3 Charlie 95.0
2. 데이터 정렬 및 중복 처리
통합된 데이터프레임에서 중복 데이터가 발생할 수 있으므로 필요 시 drop_duplicates() 함수 이용하여 제거해야 함
df_concat.drop_duplicates(inplace=True)
또한, 필요에 따라 데이터프레임을 정렬해야 할 때는 sort_values() 함수를 사용
df_concat.sort_values(by='id', inplace=True)
3. 데이터 검증
데이터 프레임 통합이 완료된 후에는 데이터의 일관성과 정확성을 검증하여 통합한 데이터가 이상이 없는지를 확인
- 각 열의 데이터 타입이 적절한지
- 누락된 데이터나 불필요한 열이 있는지
# 데이터 타입 확인
print(df_concat.dtypes)
# 결측치 확인
print(df_concat.isnull().sum())
728x90