DataFrame 수직 결합

pandas로 데이터 조인하기

Aaren Stubberfield

Instructor

테이블 두 개를 수직으로 결합하기

두 개의 테이블이 수직으로 함께 배치된 모습

  • pandas .concat() 메소드는 수직과 수평 모두 결합할 수 있습니다.
    • axis=0, 수직
pandas로 데이터 조인하기

기본 결합

  • 3개의 서로 다른 테이블
  • 동일한 열 이름
  • 테이블 변수 이름:
    • inv_jan (상단)
    • inv_feb (중간)
    • inv_mar (하단)
  iid  cid  invoice_date  total
0 1    2    2009-01-01    1.98 
1 2    4    2009-01-02    3.96 
2 3    8    2009-01-03    5.94
  iid  cid  invoice_date  total
0 7    38   2009-02-01    1.98 
1 8    40   2009-02-01    1.98 
2 9    42   2009-02-02    3.96 
  iid  cid  invoice_date  total
0 14   17   2009-03-04    1.98 
1 15   19   2009-03-04    1.98 
2 16   21   2009-03-05    3.96 
pandas로 데이터 조인하기

기본 결합

pd.concat([inv_jan, inv_feb, inv_mar])
   iid  cid  invoice_date  total
0  1    2    2009-01-01    1.98 
1  2    4    2009-01-02    3.96 
2  3    8    2009-01-03    5.94 
0  7    38   2009-02-01    1.98 
1  8    40   2009-02-01    1.98 
2  9    42   2009-02-02    3.96 
0  14   17   2009-03-04    1.98 
1  15   19   2009-03-04    1.98 
2  16   21   2009-03-05    3.96
pandas로 데이터 조인하기

인덱스 무시하기

pd.concat([inv_jan, inv_feb, inv_mar],
          ignore_index=True)
   iid  cid  invoice_date  total
0  1    2    2009-01-01    1.98 
1  2    4    2009-01-02    3.96 
2  3    8    2009-01-03    5.94 
3  7    38   2009-02-01    1.98 
4  8    40   2009-02-01    1.98 
5  9    42   2009-02-02    3.96 
6  14   17   2009-03-04    1.98 
7  15   19   2009-03-04    1.98 
8  16   21   2009-03-05    3.96
pandas로 데이터 조인하기

레이블을 원본 테이블로 설정하기

pd.concat([inv_jan, inv_feb, inv_mar],
          ignore_index=False, 
          keys=['jan','feb','mar'])
       iid  cid  invoice_date  total
jan 0  1    2    2009-01-01    1.98 
    1  2    4    2009-01-02    3.96 
    2  3    8    2009-01-03    5.94 
feb 0  7    38   2009-02-01    1.98 
    1  8    40   2009-02-01    1.98 
    2  9    42   2009-02-02    3.96 
mar 0  14   17   2009-03-04    1.98 
    1  15   19   2009-03-04    1.98 
    2  16   21   2009-03-05    3.96
pandas로 데이터 조인하기

열 이름이 다른 테이블 결합하기

테이블 inv_jan

  iid  cid  invoice_date  total
0 1    2    2009-01-01    1.98 
1 2    4    2009-01-02    3.96 
2 3    8    2009-01-03    5.94

테이블: inv_feb

  iid  cid  invoice_date  total  bill_ctry
0 7    38   2009-02-01    1.98   Germany  
1 8    40   2009-02-01    1.98   France   
2 9    42   2009-02-02    3.96   France   
pandas로 데이터 조인하기

열 이름이 다른 테이블 결합하기

pd.concat([inv_jan, inv_feb],
          sort=True)
  bill_ctry  cid  iid  invoice_date  total
0 NaN        2    1    2009-01-01    1.98 
1 NaN        4    2    2009-01-02    3.96 
2 NaN        8    3    2009-01-03    5.94 
0 Germany    38   7    2009-02-01    1.98 
1 France     40   8    2009-02-01    1.98 
2 France     42   9    2009-02-02    3.96
pandas로 데이터 조인하기

열 이름이 다른 테이블 결합하기

pd.concat([inv_jan, inv_feb],
          join='inner')
iid  cid  invoice_date  total
1    2    2009-01-01    1.98 
2    4    2009-01-02    3.96 
3    8    2009-01-03    5.94 
7    38   2009-02-01    1.98 
8    40   2009-02-01    1.98 
9    42   2009-02-02    3.96
pandas로 데이터 조인하기

연습해 봅시다!

pandas로 데이터 조인하기

Preparing Video For Download...