Python

[Python] dataframe append 와 concat

앳홍 2023. 8. 4. 19:35
반응형

기본 데이터 프레임 생성
read.csv()사용해서 cav파일을 df 라는 데이터 프레임으로 불러왔다고 예시를 들어보자

df = pd.read_csv('경로명')

df 데이터 프레임의 컬럼이 'a', 'b' 로 이루어져있고
'a' 컬럼에는 숫자 ex) 1,2,3,10,34,57....
'b' 컬럼에는 영어 알파벳이 들어있다고  ex) a,b,c,d,e,f....
가정해보자.
 

빈 데이터 프레임 test_df 생성

기존 데이터 프레임과 비교해서 합치기 쉽도록 동일한 컬럼으로 구성한다.

test_df = pd.DataFrame(columns=['a','b'])

 

test_list = ['1','2','3','20','56']


test_list 리스트에 있는 값과 기존 데이터 프레임 'a' 컬럼의 값을 비교해서 같은 값인 행들만 추출해서 빈 데이터 프레임과 합침
 
 


 

.append()

파이썬 리스트, 딕셔너리 등에 요소(인자)를 추가 삽입하는 함수
 
 

함수 형식

- dataframe.append(dataframe)
- list.append(object)
 

append 사용 예시
for i in test_list:
	test_df = test_df.append(df[df['a'] == i])

결과

위와 같은 오류 메세지가 나오는 이유는 파이썬 버전이 업그레이드되면서
데이터 프레임에 .append()함수를 사용할 수 없게 된 것 같다.
 
 


pd.concat()

기본적으로 시리즈나 데이터프레임과 같은 객체들을 특정 방향을 기준으로 단순히 이어붙이는 함수
 

함수 형식

pd.concat( [데이터프레임, 데이터프레임] )

concat 사용 예시
for i in test_list:
	test_df = pd.concat([test_df, (df[df['test_id'] == i])])

 
행방향으로 합치기: axis = 0
열방향으로 합치기: axis = 1

axis예시
pd.concat([df1,df2],axis=0)

위와 같은 오류가 뜨면
pd.concat([df1,df2])의 함수 구성을 제대로 맞추지 못한 것일 가능성이 높음!