빅데이터/데이터 처리

[빅데이터]데이터 프레임 결합

Jasonify97 2023. 9. 11. 13:36

데이터 프레임을 결합하는 2가지 방법

1. pd.concat()
기준 : 인덱스(행), column이름(열)
2. pd.merge()
기준 : 특정 column의 값을 기준으로 결합

1. pd.concat()

pd.concat을 사용하려면 2가지를 선택해야함
1. 방향 선택
axis = 0 : 세로로 합치기(행) - 기본값
axis = 1 : 가로로 합치기(열)

2. 방법 선택
join = "outer" : 모든 행과 열 합치기 - 기본값
join = "inner" : 매핑되는 행과 열만 합치기

먼저 2개의 데이터 프레임 생성
df1 = pd.DataFrame({"a" : [10,25], "b" : [15,30]})
df2 = pd.DataFrame({"a" : [20,35], "c" : [35,40]})

df1
df2

위 4가지 변수에 대한 결과값
# axis=0, join="outer"
df3 = pd.concat([df1, df2], axis=0, join="outer")

df3

# axis=1, join="outer"
df3 = pd.concat([df1, df2], axis=1, join="outer")

df4

# axis=0, join="inner"
df3 = pd.concat([df1, df2], axis=0, join="inner")

# axis=1, join="inner"
df3 = pd.concat([df1, df2], axis=1, join="inner")


2. pd.merge()

pd.merge을 사용하려면 2가지를 선택해야함
1. 기준(key)선택
on = "기준Key"

2. 방법 선택
join = "left" : 왼쪽 데이터 프레임의 Key를 기준으로 합치기
join = "right" : 오른쪽 데이터 프레임의 Key를 기준으로 합치기
how = "outer" : 두 데이터 프레임의 Key를 합집합(모두 합치고) 없는 칸은 Nan으로 
how = "inner" : 두 데이터 프레임의 Key중 교집합만 남기고 나머지는 없애기

먼저 2개의 데이터프레임 생성
df1 = pd.DataFrame({"a" : [1,2], "b": [15,30], "c" : [20,25]})
df2 = pd.DataFrame({"a" : [2,3], "d" : [20,35]})

df1
df2

df3 = pd.merge(df1, df2, on= "a", how="left")

df3 = pd.merge(df1, df2, on= "a", how="right")

df3 = pd.merge(df1, df2, on= "a", how="inner")

df3 = pd.merge(df1, df2, on= "a", how="outer")