Pandas DataFrame에 상수 값으로 새 열 추가하기
데이터 분석 작업을 하다 보면 DataFrame의 모든 행에 동일한 값(상수)을 가진 새 열을 추가해야 하는 경우가 자주 발생합니다. Pandas에서는 대괄호([]), 즉 인덱스 연산자를 사용해 열 이름을 지정하고 값을 할당하는 것만으로 매우 간단하게 처리할 수 있습니다.
1. 라이브러리 임포트
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
2. 샘플 DataFrame 생성
4개의 열(Car, Cubic_Capacity, Reg_Price, Units_Sold)로 구성된 DataFrame을 생성합니다.
dataFrame = pd.DataFrame({
"Car": ['Bentley', 'Lexus', 'BMW', 'Mustang', 'Mercedes', 'Jaguar'],
"Cubic_Capacity": [2000, 1800, 1500, 2500, 2200, 3000],
"Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000],
"Units_Sold": [100, 110, 150, 80, 200, 90]
})3. 상수 값으로 새 열 추가
대괄호 안에 새 열의 이름을 지정하고 상수 값을 할당하면 됩니다. 아래 예제에서는 모든 행에 연비(Mileage) 값 15를 가지는 새 열을 추가합니다.
dataFrame['Mileage'] = 15
이 한 줄만으로 기존 DataFrame의 모든 행에 동일한 값 15가 채워진 Mileage 열이 자동으로 추가됩니다.
전체 예제 코드
다음은 위 과정을 모두 포함한 전체 코드입니다.
import pandas as pd
# DataFrame 생성
dataFrame = pd.DataFrame({
"Car": ['Bentley', 'Lexus', 'BMW', 'Mustang', 'Mercedes', 'Jaguar'],
"Cubic_Capacity": [2000, 1800, 1500, 2500, 2200, 3000],
"Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000],
"Units_Sold": [100, 110, 150, 80, 200, 90]
})
print("Dataframe...\n", dataFrame)
# 상수 값으로 새 열 추가
dataFrame['Mileage'] = 15
print("\n새 열이 추가된 업데이트된 Dataframe...\n", dataFrame)실행 결과
위 코드를 실행하면 다음과 같은 출력이 생성됩니다.
Dataframe...
Car Cubic_Capacity Reg_Price Units_Sold
0 Bentley 2000 7000 100
1 Lexus 1800 1500 110
2 BMW 1500 5000 150
3 Mustang 2500 8000 80
4 Mercedes 2200 9000 200
5 Jaguar 3000 6000 90
새 열이 추가된 업데이트된 Dataframe...
Car Cubic_Capacity Reg_Price Units_Sold Mileage
0 Bentley 2000 7000 100 15
1 Lexus 1800 1500 110 15
2 BMW 1500 5000 150 15
3 Mustang 2500 8000 80 15
4 Mercedes 2200 9000 200 15
5 Jaguar 3000 6000 90 15참고: 다른 추가 방법들
대괄호 방식 외에도 상수 값으로 새 열을 추가할 수 있는 유용한 방법들이 있습니다.
- assign() 메서드: 원본 DataFrame은 변경하지 않고, 새 열이 추가된 복사본을 반환합니다.
df_new = dataFrame.assign(Mileage=15)
- insert() 메서드: 원하는 위치에 새 열을 삽입할 수 있습니다.
dataFrame.insert(1, 'Mileage', 15) # 1번째 위치(인덱스)에 삽입
정리
Pandas DataFrame에 상수 값으로 새 열을 추가하는 가장 간단한 방법은 dataFrame['열이름'] = 값 형태의 대괄호 인덱스 연산자를 사용하는 것입니다. 이 방식은 기존 DataFrame에 즉시 새 열을 추가하며, 모든 행에 동일한 값이 자동으로 채워집니다. 원본을 유지해야 한다면 assign(), 특정 위치 삽입이 필요하다면 insert() 메서드를 활용하면 됩니다.