판다스(Pandas)는 데이터 처리와 데이터 분석 분야에서 가장 널리 사용되는 파이썬 라이브러리 중 하나입니다. 이 글에서는 파이썬의 딕셔너리(dict)와 리스트(list)를 활용해 판다스 데이터프레임(DataFrame)을 생성하는 방법을 예제와 함께 살펴보겠습니다.
리스트를 값으로 가지는 딕셔너리에서 만들기
딕셔너리는 키(key)와 값(value)의 쌍으로 구성되는 자료구조입니다. 키에는 문자열, 값에는 리스트가 담긴 딕셔너리라면, 이를 pd.DataFrame() 메서드에 그대로 전달하는 것만으로 손쉽게 데이터프레임을 만들 수 있습니다. 이때 각 키는 열(column) 이름이 되고, 키에 대응하는 리스트는 해당 열의 데이터로 변환됩니다.
예제
import pandas as pd
# 시험 일정 딕셔너리
Exam_Schedule = {
'Exam Day': ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'],
'Exam Subject': ['Chemistry', 'Physics', 'Maths', 'English', 'Biology'],
'Exam Time': ['2 PM', '10 AM', '11 AM', '1 PM', '3 PM']
}
# 딕셔너리를 데이터프레임으로 변환
Exam_Schedule_df = pd.DataFrame(Exam_Schedule)
print(Exam_Schedule_df)출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Exam Day Exam Subject Exam Time 0 Mon Chemistry 2 PM 1 Tue Physics 10 AM 2 Wed Maths 11 AM 3 Thu English 1 PM 4 Fri Biology 3 PM
각 키('Exam Day', 'Exam Subject', 'Exam Time')가 열 제목이 되고, 리스트의 요소들이 행 단위로 배치되어 5개의 행을 가진 데이터프레임이 완성된 것을 확인할 수 있습니다.
인덱스(index) 추가하기
데이터프레임을 생성할 때 index 매개변수를 지정하면 기본 숫자 인덱스(0, 1, 2…) 대신 의미 있는 인덱스를 부여할 수 있습니다. 아래 예제에서는 시험 과목과 시험 시간만 담은 딕셔너리로 데이터프레임을 만든 뒤, 요일을 행 인덱스로 지정해 보겠습니다.
예제
import pandas as pd
# 시험 일정 딕셔너리
Exam_Schedule = {
'Exam Subject': ['Chemistry', 'Physics', 'Maths', 'English', 'Biology'],
'Exam Time': ['2 PM', '10 AM', '11 AM', '1 PM', '3 PM']
}
# 인덱스를 지정하여 데이터프레임 생성
Exam_Schedule_df = pd.DataFrame(Exam_Schedule,
index=['Mon', 'Tue', 'Wed', 'Thu', 'Fri'])
print(Exam_Schedule_df)출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Exam Subject Exam Time Mon Chemistry 2 PM Tue Physics 10 AM Wed Maths 11 AM Thu English 1 PM Fri Biology 3 PM
이렇게 요일이 행 인덱스 역할을 하면, Exam_Schedule_df.loc['Mon']처럼 특정 요일의 시험 정보를 직관적으로 조회할 수 있어 데이터 탐색이 한결 편리해집니다.