파이썬의 판다스(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 함수는 세 가지 인자를 받는데, 첫 번째는 삽입할 위치의 인덱스, 두 번째는 열의 이름, 세 번째는 데이터입니다. 이 방법은 특정 위치에 열을 추가해야 할 때 유용합니다.
# 2. insert() 메소드를 통한 특정 위치에 열 삽입 df.insert(1, 'D', [10, 11, 12])
또한 assign 함수를 사용하여 새로운 열을 추가할 수 있습니다. assign 함수는 기존 데이터프레임을 변경하지 않고, 새로운 열을 추가한 데이터프레임을 반환합니다. 이 방식은 기존 데이터프레임을 변경하지 않고, 열을 추가하려고 할 때 특히 유용합니다. 또한 체인 메소드를 이용해 데이터 편집을 더 직관적이고, 편리하게 할 수 있습니다.
# 3. assign() 메소드를 통한 새로운 데이터프레임 반환 df_with_new_col = df.assign(E=[13, 14, 15])
파이썬 판다스의 데이터프레임에 열을 추가할 때에는 몇 가지 주의해야 할 점이 있습니다.
먼저, 데이터프레임의 기존 행 수와 동일한 길이의 새로운 열 데이터를 제공해야 합니다. 만약 제공된 데이터 길이가 일치하지 않으면 ValueError가 발생합니다. 열 추가 시, None이나 NaN 값을 잠재적으로 포함하게 되는 경우도 고려해야 합니다.
또한 새로운 열이 데이터프레임의 기존 열 이름과 충돌하지 않아야 합니다. 동일한 이름의 열이 이미 존재할 경우, 의도치 않게 데이터를 덮어쓸 수 있습니다. 열의 이름은 문자열의 형태로 지정되며, 고유한 이름을 부여해야 합니다.
파이썬 데이터프레임에 열을 추가할 때, 기존 데이터를 이용해 새로운 데이터를 생성하거나 계산된 데이터를 추가하는 경우가 많습니다. 이를 더욱 효율적으로 처리하기 위한 몇 가지 팁을 소개합니다.
첫 번째 팁은 벡터 연산을 최대한 활용하는 것입니다. 판다스는 벡터 연산을 효율적으로 처리하는 여러 기능을 제공합니다. 예를 들어 두 개의 열을 합산하여 새로운 열을 생성할 경우, apply 함수로 루프를 돌릴 수 있습니다. 하지만 이 방식보다 단순한 산술 연산을 통해 벡터 연산을 수행하면 훨씬 빠르고 코드가 깔끔합니다.
두 번째 팁은 조건에 따른 열 생성을 위해 numpy.where 또는 판다스 loc를 활용하는 것입니다. 특정 조건에 따라 값이 다르게 설정되어야 하는 경우, 이를 사용하면 코드가 간결하며 성능도 향상됩니다. 예를 들어, 특정 열의 값이 기준보다 큰 경우, 새로운 열에 ‘성공’이라는 값을 넣고 그렇지 않으면 ‘실패’라고 입력하는 경우가 있을 수 있습니다.
마지막으로 큰 데이터셋을 처리해야 할 때는 배치로 처리하거나 데이터 일부분에만 연산을 수행하는 방법을 고려해보는 것도 좋습니다. 데이터가 많아질수록 성능이 중요합니다. 이 때 chunksize 옵션을 사용해 데이터를 일부만 불러오는 방식도 유용합니다.
이러한 팁을 활용하면 데이터프레임의 열을 추가할 때 보다 효율적으로 작업할 수 있습니다.
먼저, 데이터프레임에 특정 값이나 조건을 기준으로 새로운 열을 추가하는 방법을 살펴보겠습니다. 예를 들어, 기온 데이터가 저장된 데이터프레임에 ‘추운 날’이라는 열을 추가하고 싶다면, 기온이 특정 값 이하일 때 참(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)
복잡한 계산 결과를 열에 추가합니다. 예를 들어, 두 열 간의 연산결과를 새로운 열에 추가할 수 있습니다.
data2 = {'Math': [80, 90, 70], 'English': [75, 85, 78]} df2 = pd.DataFrame(data2) df2['Total'] = df2['Math'] + df2['English'] print(df2)
데이터프레임 기존 열을 응용해 새로운 열을 추가할 수도 있습니다. 여러 열에서 선택적으로 데이터를 추출하거나 조합하여 데이터를 가공할 때 유용합니다.
여러 개 열을 한 번에 추가할 경우 assign 함수를 활용할 수 있습니다.
df2.assign(math_av=df2.Math.mean() ,english_av=df2.English.mean())
데이터프레임에 열을 추가하는 작업은 데이터 분석에서 많이 수행하는 일입니다. 파이썬 판다스를 활용해서 다양한 방법으로 열을 추가할 수 있으며, 이를 통해 데이터 셋을 더 나은 방향으로 확장할 수 있습니다. 간단한 방법부터 다양한 상황에 맞춘 방법까지 익혀둔다면, 데이터 분석 작업이 더욱 효율적이고 효과적으로 이뤄질 것입니다.
송대관 가끔은 예상치 못한 이별이 우리 가슴을 더 아프게 합니다. 국민가수 송대관의 갑작스러운 별세 소식은…
윈도우 pyenv 파이썬 버전 관리 파이썬을 쓰다 보면, 다양한 프로젝트에서 여러가지 버전을 사용해야 하는 일이…
파이썬 전역변수 global 파이썬에서 전역변수(global variable)는 프로그램 전체에서 접근 가능한 변수입니다. 전역변수 과다 사용은 프로그램…
제미나이 LLM 기술이 날로 발달하며, 가격도 시간이 흐를수록 저렴해지고 있습니다. DeepSeek는 오픈소스로 PC에 다운로드해 무료로…
파이썬 교육 "파이썬 배우고 싶은데 너무 어려워서 엄두가 안 나요..." 🤔 "코딩 강의는 많은데, 다…
파이썬 실행파일 만들기 파이썬은 뛰어난 가독성과 유연성 덕분에 많은 개발자들이 선호하는 프로그래밍 언어입니다. 종종 배포를…