파이썬

파이썬 데이터프레임에 열 추가하는 방법과 팁

판다스-데이터프레임-열-추가

파이썬의 판다스(Pandas) 패키지는 데이터 분석에 널리 사용되는 강력한 도구입니다. 이 패키지를 이용하면 테이블 데이터를 다루기 매우 편리합니다. 데이터프레임에 새로운 열을 추가하는 일은 데이터 분석에서 자주 하는 꼭 필요한 작업입니다.

이 포스팅에서는 파이썬에서 데이터프레임에 열을 추가하는 다양한 방법과 이를 사용할 때 알아두면 좋은 팁을 알아보았습니다.


데이터프레임 열 추가 방법

직접 할당

데이터프레임에 열을 추가하는 작업은 여러 가지 방법으로 가능합니다. 가장 일반적인 방법은 연산자를 사용하여 데이터를 새로운 열에 직접 할당하는 방식입니다. 이 방식은 쉽게 이해할 수 있으며 특정 열에 값을 추가하거나 없는 경우 새로 만들 수 있습니다. 아래 코드는 D라는 열(칼럼)을 새로 만들고, 모든 값을 1로 채웁니다.

import pandas as pd # 샘플 데이터프레임 생성
df = pd.DataFrame({ 'A': [1, 2, 3], 'B': [4, 5, 6] })

# 1. 할당 연산자를 통한 열 추가
df['D'] = 1
df['C'] = [7, 8, 9]

insert 함수

다른 방법은 insert 함수 사용입니다. 이 함수는 원하는 위치에 열을 삽입할 수 있고, 기존 열의 인덱스를 방해하지 않고 새로운 열을 추가하는 기능을 제공합니다. insert 함수는 세 가지 인자를 받는데, 첫 번째는 삽입할 위치의 인덱스, 두 번째는 열의 이름, 세 번째는 데이터입니다. 이 방법은 특정 위치에 열을 추가해야 할 때 유용합니다.

# 2. insert() 메소드를 통한 특정 위치에 열 삽입
df.insert(1, 'D', [10, 11, 12])

assign 함수

또한 assign 함수를 사용하여 새로운 열을 추가할 수 있습니다. assign 함수는 기존 데이터프레임을 변경하지 않고, 새로운 열을 추가한 데이터프레임을 반환합니다. 이 방식은 기존 데이터프레임을 변경하지 않고, 열을 추가하려고 할 때 특히 유용합니다. 또한 체인 메소드를 이용해 데이터 편집을 더 직관적이고, 편리하게 할 수 있습니다.

# 3. assign() 메소드를 통한 새로운 데이터프레임 반환
df_with_new_col = df.assign(E=[13, 14, 15])

열 추가 시 주의사항

파이썬 판다스의 데이터프레임에 열을 추가할 때에는 몇 가지 주의해야 할 점이 있습니다.

먼저, 데이터프레임의 기존 행 수와 동일한 길이의 새로운 열 데이터를 제공해야 합니다. 만약 제공된 데이터 길이가 일치하지 않으면 ValueError가 발생합니다. 열 추가 시, None이나 NaN 값을 잠재적으로 포함하게 되는 경우도 고려해야 합니다.

또한 새로운 열이 데이터프레임의 기존 열 이름과 충돌하지 않아야 합니다. 동일한 이름의 열이 이미 존재할 경우, 의도치 않게 데이터를 덮어쓸 수 있습니다. 열의 이름은 문자열의 형태로 지정되며, 고유한 이름을 부여해야 합니다.


활용 팁

파이썬 데이터프레임에 열을 추가할 때, 기존 데이터를 이용해 새로운 데이터를 생성하거나 계산된 데이터를 추가하는 경우가 많습니다. 이를 더욱 효율적으로 처리하기 위한 몇 가지 팁을 소개합니다.

첫 번째 팁은 벡터 연산을 최대한 활용하는 것입니다. 판다스는 벡터 연산을 효율적으로 처리하는 여러 기능을 제공합니다. 예를 들어 두 개의 열을 합산하여 새로운 열을 생성할 경우, apply 함수로 루프를 돌릴 수 있습니다. 하지만 이 방식보다 단순한 산술 연산을 통해 벡터 연산을 수행하면 훨씬 빠르고 코드가 깔끔합니다.

두 번째 팁은 조건에 따른 열 생성을 위해 numpy.where 또는 판다스 loc를 활용하는 것입니다. 특정 조건에 따라 값이 다르게 설정되어야 하는 경우, 이를 사용하면 코드가 간결하며 성능도 향상됩니다. 예를 들어, 특정 열의 값이 기준보다 큰 경우, 새로운 열에 ‘성공’이라는 값을 넣고 그렇지 않으면 ‘실패’라고 입력하는 경우가 있을 수 있습니다.

마지막으로 큰 데이터셋을 처리해야 할 때는 배치로 처리하거나 데이터 일부분에만 연산을 수행하는 방법을 고려해보는 것도 좋습니다. 데이터가 많아질수록 성능이 중요합니다. 이 때 chunksize 옵션을 사용해 데이터를 일부만 불러오는 방식도 유용합니다.

이러한 팁을 활용하면 데이터프레임의 열을 추가할 때 보다 효율적으로 작업할 수 있습니다.


추가 예제

1) 조건 기준 열 추가

먼저, 데이터프레임에 특정 값이나 조건을 기준으로 새로운 열을 추가하는 방법을 살펴보겠습니다. 예를 들어, 기온 데이터가 저장된 데이터프레임에 ‘추운 날’이라는 열을 추가하고 싶다면, 기온이 특정 값 이하일 때 참(True) 값을 가지도록 할 수 있습니다.

import pandas as pd
data = {'날짜': ['2023-01-01', '2023-01-02', '2023-01-03'],
        '온도': [5, -3, 2]}
df = pd.DataFrame(data)
df['추운 날'] = df['온도'] < 0
print(df)

2) 계산 결과 추가

복잡한 계산 결과를 열에 추가합니다. 예를 들어, 두 열 간의 연산결과를 새로운 열에 추가할 수 있습니다.

data2 = {'Math': [80, 90, 70],
         'English': [75, 85, 78]}
df2 = pd.DataFrame(data2)
df2['Total'] = df2['Math'] + df2['English']
print(df2)

데이터프레임 기존 열을 응용해 새로운 열을 추가할 수도 있습니다. 여러 열에서 선택적으로 데이터를 추출하거나 조합하여 데이터를 가공할 때 유용합니다.

3) 한 번에 여러 개 추가

여러 개 열을 한 번에 추가할 경우 assign 함수를 활용할 수 있습니다.

df2.assign(math_av=df2.Math.mean()
          ,english_av=df2.English.mean())

데이터프레임에 열을 추가하는 작업은 데이터 분석에서 많이 수행하는 일입니다. 파이썬 판다스를 활용해서 다양한 방법으로 열을 추가할 수 있으며, 이를 통해 데이터 셋을 더 나은 방향으로 확장할 수 있습니다. 간단한 방법부터 다양한 상황에 맞춘 방법까지 익혀둔다면, 데이터 분석 작업이 더욱 효율적이고 효과적으로 이뤄질 것입니다.


테리엇

Share
Published by
테리엇
Tags: 판다스

Recent Posts

도쿄 헬기투어 가격과 코스, 후지산까지 90분이면 보입니다

도쿄에 또 가나요? 도쿄타워 전망대도, 시부야 스크램블 교차로도, 아사쿠사 센소지도 이미 본 분들이라면 다음 카드로…

1일 ago

김세의 프로필, 가로세로연구소 대표 구속까지 전말 정리

1. 김세의, 2026년 5월 26일 구속이라는 분기점 김세의 가로세로연구소 대표가 2026년 5월 26일 서울중앙지법에서 구속됐습니다.…

3일 ago

군체 정보 | 개봉 5일 만에 200만, 연상호가 만든 새 좀비의 정체

연상호 감독의 신작 영화 '군체'가 2026년 5월 21일 개봉 후 단 5일 만에 누적 관객…

4일 ago

에리카 윤 스미스 프로필, 서울 출생 25세 KLPGA 교포 신예

2026 KLPGA 투어 개막전인 리쥬란 챔피언십 미디어데이 사진을 본 분이라면 한 가지 의문이 드셨을 겁니다.…

5일 ago

정지원 아나운서 프로필, 남편·학력·발음 논란 한눈에

1. KBS 정지원 아나운서, 요즘 어디서 만나볼 수 있을까요 아침마다 KBS 2TV를 켜면 익숙한 얼굴이…

1주 ago

김아현(해초) 활동가 프로필, 이스라엘 2번 나포된 27세 여성의 정체

2026년 5월 22일 새벽, 인천국제공항 1터미널 입국장에 검은 티셔츠와 청바지 차림의 한 청년이 모습을 드러냈습니다.…

1주 ago