Python/Pandas

[Pandas] 파이썬 데이터프레임 행/열 복사(복제) 방법

jimmy_AI 2022. 5. 20. 22:15
반응형

파이썬 판다스 row/column 복사하기

파이썬 판다스 모듈에서 데이터프레임의 특정 행, 열을 복제하는 방법에 대해서

정리해보도록 하겠습니다.

 

예시로, 아래의 데이터프레임이 df라는 변수에 저장된 상황을 가정하고 결과를 살펴보겠습니다.

import pandas as pd

a = {'A' : [111, 222, 333, 444, 555, 666], 'B' : ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff']}
df = pd.DataFrame(a)
df

 

 

행 1개 복제

행 1개를 복사하여 맨 아래의 위치에 붙이는 방법은

df.loc[인덱스]를 이용하여 행 1개를 가져온 뒤, df.append를 사용하여

맨 뒤의 위치에 복제된 행을 이어 붙이면 됩니다.

 

2번 인덱스에 해당하는 행을 이어 붙인 예시 코드는 아래와 같습니다.

df = df.append(df.loc[2])
# df = df.append(df.loc[2], ignore_index = True) 복제된 행 인덱스가 6으로 지정됨

df

만일, 행의 인덱스가 연속된 형태로 행을 복사하고 싶다면

append 함수 내의 ignore_index 인자를 True로 설정해주시면 됩니다.

 

 

행 여러 개 복제

여러 개의 행을 동시에 복사하여 맨 뒤에 붙이고 싶은 경우에는

df.loc[해당되는 인덱스들의 리스트] 형태로 행 여러 개를 가져온 뒤,

위와 마찬가지로 df.append를 진행해주시면 됩니다.

 

2, 4, 5번에 해당하는 인덱스의 행들을 복제하는 과정은 아래 코드처럼 진행이 가능합니다.

df = df.append(df.loc[[2, 4, 5]])
# df = df.append(df.loc[[2, 4, 5]], ignore_index = True) 복제된 행들의 인덱스가 6, 7, 8번으로 지정됨

df

마찬가지로, ignore_index = True를 지정하여 인덱스 초기화 자동 지정이 가능합니다.

반응형

열 1개 복제

이번에는 컬럼 1개 전체를 복사하는 방법을 살펴보겠습니다.

df[새로운 열 이름] = df[복제될 열 이름] 형태로 코드를 작성해주시면 됩니다.

 

A열을 복사하여 C열로 새롭게 이어 붙인 예시 코드는 다음과 같습니다.

df['C'] = df['A']

df

 

 

열 여러 개 복제

마찬가지로 여러 개의 열들을 동시에 복사하는 방법은

df[추가될 열 이름 리스트] = df[복제될 열 이름 리스트] 형태로 지정해주시면 됩니다.

이 때, 열 이름 리스트의 길이는 양 쪽에서 같아야 합니다.

 

A, B열을 복제하여 C, D열로 각각 추가한 예시는 아래와 같습니다.

df[['C', 'D']] = df[['A', 'B']]

df