본문 바로가기

데이터 분석 학습

6장 자유자재로 데이터 가공하기 (6)

반응형

6-7 데이터 합치기

데이터를 합치는 방법 : 가로로 합치기, 세로로 합치기

가로로 합치기

1. pd.merge()에 결합할 데이터 프레임명 나열

2. 오른쪽에 입력한 데이터 프레임을 왼쪽 데이터 프레임에 결합하도록 how = 'left'를 입력

3. 데이터를 합칠 때 기준으로 삼을 변수명을 on에 입력

# 중간고사 데이터 만들기
test1 = pd.DataFrame({'id'      : [1, 2, 3, 4, 5],
                      'midterm' : [60, 80, 70, 90, 85]})

# 기말고사 데이터 만들기
test2 = pd.DataFrame({'id'    : [1, 2, 3, 4, 5],
                      'final' : [70, 83, 65, 95, 80]})
test1

test2

total = pd.merge(test1, test2, how = 'left', on = 'id')
total

다른 데이터를 활용해 변수 추가

name = pd.DataFrame({'nclass'  : [1, 2, 3, 4, 5],
                     'teacher' : ['kim', 'lee', 'park', 'choi', 'jung']})
name

exam_new = pd.merge(exam, name, how = 'left', on = 'nclass')
exam_new

세로로 합치기

pd.concat()을 이용

# 학생 1~5번 시험 데이터 만들기
group_a = pd.DataFrame({'id'   : [1, 2, 3, 4, 5],
                        'test' : [60, 80, 70, 90, 85]})

# 학생 6~10번 시험 데이터 만들기
group_b = pd.DataFrame({'id'   : [6, 7, 8, 9, 10],
                        'test' : [70, 83, 65, 95, 80]})
group_a

group_b

group_all = pd.concat([group_a, group_b])
group_all

※ 인덱스를 새로 부여하려면 pd.concat()에 ignore_index = True를 입력

 

pandas 치트 시트

https://pandas.pydata.org/Pandas_Cheat_Sheet.pdf
https://pandas.pydata.org/Pandas_Cheat_Sheet.pdf

 

혼자서 해보기 - mpg 데이터를 이용해 분석 문제를 해결해 보세요

fuel = pd.DataFrame({'fl' : ['c', 'd', 'e', 'p', 'r'],
                     'price_fl' : [2.35, 2.38, 2.11, 2.76, 2.22]})
fuel

Q1 mpg 데이터에는 연료 종류를 나타낸 fl 변수는 있지만 연료 가격을 나타낸 변수는 없습니다. 앞에서 만든 fuel 데이터를 이용해 mpg 데이터에 price_fl(연료 가격) 변수를 추가하세요.

mpg = pd.merge(mpg, fuel, how = 'left', on = 'fl')
mpg

Q2 연료 가격 변수가 잘 추가됐는지 확인하기 위해 model, fl, price_fl 변수를 추출해 앞부분 5행을 출력해 보세요.

mpg[['model', 'fl', 'price_fl']].head(5)

 

 

 

 

※ 해당 내용은 <Do it! 파이썬 데이터 분석>의 내용을 토대로 학습하며 정리한 내용입니다.

 

반응형