파이썬 기초_7

jh_k·2023년 2월 5일
0

python기초

목록 보기
7/11

데이터프레임의 결합

  1. 단순한 행, 열 결합
  2. 특정한 조건에 따라서 열을 추가하는 경우
import pandas as pd

## 단순한 행을 추가 
df = pd.DataFrame({
    'S1' : [1,2,3,4], 
    'S2' : [5,6,7,8]
})

df_2 = pd.DataFrame([1,2])

concat()

  1. 데이터프레임을 결합하는 함수
  2. 매개변수 axis -> 행을 추가를 할지 열을 추가 할지 지정
  3. 단순한 결합
  4. 매개변수 ignore_index -> 기본값이 false, 인덱스의 값을 그대로 유지할지 지정
## 행을 추가
# pd.concat([df, df_2], axis=0, ignore_index=True)
pd.concat([df, df_2], axis="rows").reset_index(drop=True)
df_3 = pd.DataFrame({
    'S1' : [1,2]
})

pd.concat([df, df_3], axis=1)

merge()

  1. 데이터프레임을 결합하는 함수
  2. 특정 조건에 맞춰서 열을 추가하는 함수
  3. 매개변수 on -> 조건
  4. 매개변수 how -> (left, right, inner, full) 방법
df_4 = pd.DataFrame({
    "id" : [1,2,3,4,5], 
    "item" : ['a', 'b', 'a', 'a', 'b']
})
df_5 = pd.DataFrame({
    "id" : [1,4,5,2,3], 
    "name" : ["kim", "lee", "park", "choi", "ha"]
})

test = df_5.sort_values("id").reset_index(drop=True)
## df_4, df_5 결합

## 단순히 열을 추가하는 concat()
pd.concat([df_4, test], axis=1)
## 단순한 열 결합 X
## 특정한 조건에 맞게 열 결합
## merge(데이터프레임, 데이터프레임, on = 조건, how = 방법)
pd.merge(df_4, df_5, on = 'id', how="left")

## left, right, inner 데이터의 순서가 다를뿐 내용은 같은 내용이 출력
## 이유는??
## 
df_6 = pd.DataFrame({
    "item" : ['a', 'b', 'c'], 
    'item_price' : ["100", "200", "300"]
})

## df_4와 df_6 merge()이용하여 결합
## on이라는 조건에 들어가야될 값은? -> item
## df_4 -> item 값 리스트 -> [a, b]
## df_6 -> item 값 리스트 -> [a, b, c]

pd.merge(df_4, df_6, on='item', how='right')
df_7 = pd.DataFrame({
    "id": [1,2,3,4,5,6], 
    "item" : ['a', 'a', 'b', 'a', 'b', 'd']
})

pd.merge(df_7, df_6, on='item', how='outer')
profile
Just Enjoy Yourself

0개의 댓글