본문 바로가기

더 나은 엔지니어가 되기 위해/파이썬을 파이썬스럽게

pandas, 데이터 프레임 합치는 방법 중 뭐가 제일 빠를까

pandas 에서 기존 데이터 프레임에 행(row) 를 추가해야할 때, 뭘 쓰면 좋을까.
일단 방법은 3가지가 있다.

  • pd.DataFrame() + np.concatenate()

  • pd.concat()

  • df.append()

    세가지 방법 중 뭐가 제일 빠른지 빠르게 확인해본다.

데이터 크기

print(df1.shape)
print(df2.shape)

# output
(1048575, 11)
(385067, 11)

pd.DataFrame + np.concatenate 이용

start_time = time.time() 

df3 = pd.DataFrame(np.concatenate((df.values, df2.values), axis=0 ))

end_time = time.time()
print(end_time - start_time)

# output
7.289494037628174

pd.concat 이용

start_time = time.time() 

df3 = pd.concat([df, df2])

end_time = time.time()
print(end_time - start_time)

# output
0.533782958984375

df.append 이용

start_time = time.time() 

df3 = df.append(df2)

end_time = time.time()
print(end_time - start_time)

# output
0.3218259811401367

그냥 한 눈에봐도, df.append() 이 제일 빠르다.
데이터 프레임 합칠 일 있으면 얘를 쓰면 되겠다.