파이썬 판다스 합치기 append 에러 concat으로 해결하기

 

파이썬 판다스에서 합치기를 할 경우 append 에러가 발생하는데요.

 

판다스 Append

 

AttributeError: 'DataFrame' object has no attribute 'append'. Did you mean: '_append'?

 

기본적으로 판다스에서 쉽게 합치는 방법은 append를 사용하는 것인데요.

import pandas as pd, os

base_dir = 'dir'

df_sum = pd.DataFrame() # 빈 DataFrame을 만듦.
for fname in os.listdir(base_dir):
    df_temp = pd.read_excel(os.path.join(base_dir, fname))
    df_sum = df_sum.append(df_temp) 

이 에러의 원인은 최근에 Pandas가 2.0 버전 업데이트를 하면서 append 기능을 삭제했기 때문입니다. 현재 이에 대한 해결책은 append 대신 Concat을 사용하는 것인데요.

 

 

for문으로 합치는 경우 아래와 같은 방법으로 하는 것으로 Stack overflow에 올라와 있습니다.

 

즉 데이터 행렬을 만들고, 이걸 가지고 for문을 돌리고

 

최종 결과물은 pd.concat으로 합쳐서 엑셀로 만드는 형태입니다.

 

appended_data = []
for infile in glob.glob("*.xlsx"):
    data = pandas.read_excel(infile)
    # store DataFrame in list
    appended_data.append(data)
# see pd.concat documentation for more info
appended_data = pd.concat(appended_data)
# write DataFrame to an excel sheet 
appended_data.to_excel('appended.xlsx')

 

이렇게 할 경우 에러 없이 정상적으로 동작합니다.

 

그럼 잘 사용하시기 바랍니다.