이 튜토리얼에서는 Python의 Pandas 라이브러리에서 기존 DataFrame에 새로운 열(column)을 추가하는 다양한 방법을 알아봅니다. 새 열을 추가하는 방법은 여러 가지가 있으며, 각 방식마다 장점과 활용 상황이 다릅니다. 지금부터 대표적인 세 가지 방법을 하나씩 살펴보겠습니다.
1. 리스트(List)를 이용한 열 추가
가장 간단하고 직관적인 방법은 리스트를 사용하는 것입니다. 아래 단계를 따라 새 열을 추가할 수 있습니다.
알고리즘
1. 딕셔너리를 사용하여 DataFrame을 생성합니다. 2. 새 열에 들어갈 데이터를 리스트로 만듭니다. ※ 반드시 기존 DataFrame의 데이터 길이와 일치해야 합니다. 3. 딕셔너리 요소를 추가하듯이 리스트를 DataFrame에 할당합니다.
예제
# pandas 임포트
import pandas as pd
# DataFrame 생성
data = {
'Name': ['Hafeez', 'Aslan', 'Kareem'],
'Age': [19, 18, 15],
'Profession': ['Pythoneer', 'Programmer', 'Student']
}
dataframe = pd.DataFrame(data)
print('-----------새 열 추가 전----------')
print(dataframe)
print('\n\n')
# 새 열을 위한 리스트 생성
places = ['Nellore', 'Mumbai', 'Andhra']
# 'Places'를 열 이름으로 사용하여
# 리스트를 DataFrame의 새 열로 추가
dataframe['Places'] = places
print('---------------새 열 추가 후------------')
print(dataframe)실행 결과
위 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
-----------새 열 추가 전----------
Name Age Profession
0 Hafeez 19 Pythoneer
1 Aslan 18 Programmer
2 Kareem 15 Student
---------------새 열 추가 후------------
Name Age Profession Places
0 Hafeez 19 Pythoneer Nellore
1 Aslan 18 Programmer Mumbai
2 Kareem 15 Student Andhra이처럼 dataframe['열이름'] = 리스트 형태로 작성하면 새 열이 DataFrame 맨 오른쪽에 자동으로 추가됩니다.
2. DataFrame.insert() 메서드 활용
특정 위치에 열을 삽입하고 싶다면 내장 메서드인 insert()를 사용하는 것이 좋습니다. 이 메서드는 원하는 인덱스 위치에 정확히 열을 배치할 수 있다는 점에서 유용합니다.
알고리즘
1. 딕셔너리를 사용하여 DataFrame을 생성합니다. 2. 새 열 데이터를 담은 리스트를 만듭니다. ※ 기존 DataFrame의 데이터 길이와 일치해야 합니다. 3. DataFrame.insert(index, column_name, data) 메서드를 사용하여 데이터를 삽입합니다.
예제
# pandas 임포트
import pandas as pd
# DataFrame 생성
data = {
'Name': ['Hafeez', 'Aslan', 'Kareem'],
'Age': [19, 18, 15],
'Profession': ['Pythoneer', 'Programmer', 'Student']
}
dataframe = pd.DataFrame(data)
print('-----------새 열 추가 전----------')
print(dataframe)
print('\n\n')
# 새 열을 위한 리스트 생성
places = ['Nellore', 'Mumbai', 'Andhra']
# insert(index, column_name, data)를 사용하여
# 리스트를 DataFrame의 새 열로 추가
dataframe.insert(2, 'Places', places)
print('---------------새 열 추가 후------------')
print(dataframe)실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
-----------새 열 추가 전----------
Name Age Profession
0 Hafeez 19 Pythoneer
1 Aslan 18 Programmer
2 Kareem 15 Student
---------------새 열 추가 후------------
Name Age Places Profession
0 Hafeez 19 Nellore Pythoneer
1 Aslan 18 Mumbai Programmer
2 Kareem 15 Andhra Student출력 결과를 보면 'Places' 열이 인덱스 2번 위치, 즉 'Age'와 'Profession' 사이에 삽입된 것을 확인할 수 있습니다.
3. DataFrame.assign() 메서드 활용
assign() 메서드는 새 열 데이터를 인자로 받아 DataFrame의 맨 마지막에 열로 추가합니다. 특징적으로 이 메서드는 원본을 수정하지 않고 새로운 DataFrame을 반환하기 때문에, 반환값을 별도의 변수에 저장해야 합니다.
알고리즘
1. 딕셔너리를 사용하여 DataFrame을 생성합니다. 2. 새 열 데이터를 담은 리스트를 만듭니다. ※ 기존 DataFrame의 데이터 길이와 일치해야 합니다. 3. DataFrame.assign(column_name = data) 메서드를 사용하여 데이터를 삽입합니다. 새 DataFrame이 반환되므로 변수에 저장합니다. 4. 새 DataFrame을 출력합니다.
예제
# pandas 임포트
import pandas as pd
# DataFrame 생성
data = {
'Name': ['Hafeez', 'Aslan', 'Kareem'],
'Age': [19, 18, 15],
'Profession': ['Pythoneer', 'Programmer', 'Student']
}
dataframe = pd.DataFrame(data)
print('-----------새 열 추가 전----------')
print(dataframe)
print('\n\n')
# 새 열을 위한 리스트 생성
places = ['Nellore', 'Mumbai', 'Andhra']
# assign(column_name = data)를 사용하여
# 리스트를 DataFrame의 새 열로 추가
new_dataframe = dataframe.assign(Places = places)
print('---------------새 열 추가 후------------')
print(new_dataframe)실행 결과
위 프로그램을 실행하면 다음과 같은 결과를 얻습니다.
-----------새 열 추가 전----------
Name Age Profession
0 Hafeez 19 Pythoneer
1 Aslan 18 Programmer
2 Kareem 15 Student
---------------새 열 추가 후------------
Name Age Profession Places
0 Hafeez 19 Pythoneer Nellore
1 Aslan 18 Programmer Mumbai
2 Kareem 15 Student Andhra마무리 및 방법별 비교
지금까지 Pandas DataFrame에 새 열을 추가하는 세 가지 방법을 살펴보았습니다. 각 방법의 특징을 정리하면 다음과 같습니다.
- 리스트 할당 (
df['열'] = 리스트): 가장 간단하며, 항상 맨 끝에 열이 추가됩니다. - insert(): 원하는 위치(인덱스)에 열을 삽입할 수 있으며, 원본 DataFrame을 직접 수정합니다.
- assign(): 원본을 변경하지 않고 새 DataFrame을 반환하므로, 함수형 스타일의 코드 작성에 적합합니다.
상황에 맞는 방법을 선택하여 사용하시기 바랍니다. 튜토리얼에 대해 궁금한 점이 있다면 댓글로 남겨주세요.