앎을 경계하기

[가짜연구소3기] Data Engineer

[가짜연구소 3기] 데이터 엔지니어링 39 - Combining multiple datasets

양갱맨 2021. 9. 4. 21:13

주제

데이터프레임 합치는 방법에 대해 배웠다.


여러 개의 데이터프레임 합치기

  • append()함수를 사용해서 두 데이터프레임을 합칠 수 있다.
    • 인덱스의 중복 문제를 해결하기 위해 ignore_index=True 를 설정하여 다시 인덱스를 매기도록 한다.
    params = {'term' : 'bookstore',
    'location' : 'San Francisco'}
    first_results = requests.get(api_url,
    				headers=headerws,
    				params=params).json()
    first_20_bookstores = json_normalize(first_results['businesses'],sep='_')
    print(first_20_bookstores.shape)
    (20, 24)
    Yelp API는 한 번에 20개의 레코드를 반환한다.
    params['offset'] = 20
    next_results = requests.get(api_url,
    														headers=headers,
    														params=params).json()
    next_20_bookstores = json_normalize(next_results['businesses'],
    																		sep='_')
    print(next_20_bookstores.shape)
    (20, 24)
    first_20_bookstoresnext_20_bookstores를 추가하고 행 인덱스를 다시 지정한다.
  • bookstores = first_20_bookstores.append(next_20_bookstores, ignore_index=True)
  • 다음 20개의 레코드를 가져오기 위해 오프셋을 사용한다.

병합

컬럼을 사용해서 두 데이터프레임을 병합한다.

지난 SQL JOIN과 같은 형태이다.

  • merge()를 사용해서 합칠 수 있다.
    • on 에 두 데이터프레임의 공통 컬럼을 명시한다.
      • 만약 컬럼 이름이 다르다면 left_on, right_on을 사용하면 된다.
      • 병합이 제대로 되려면 컬럼의 타입이 동일해야한다.