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() 이 제일 빠르다.
데이터 프레임 합칠 일 있으면 얘를 쓰면 되겠다.
'더 나은 엔지니어가 되기 위해 > 파이썬을 파이썬스럽게' 카테고리의 다른 글
df.iterrows() 대신, df.itertuples()? Pandas Iteration 성능비교 (0) | 2019.09.10 |
---|---|
python 멀티 프로세싱은 parmap 으로 하자. (15) | 2019.07.22 |
파이썬 제너레이터 간단 정리 (0) | 2019.04.29 |
파이썬 정렬, 다중 조건으로 한 번에 하기. (8) | 2019.04.15 |
파이썬 Asterisk(*)에 대해서 (1) | 2019.04.04 |