Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 길이가 같은 여러 리스트를 딕셔너리로 변환해 Pandas DataFrame 만들기

Pandas의 DataFrame은 다양한 방법으로 생성할 수 있으며, 그중 하나가 딕셔너리(dictionary)를 DataFrame으로 변환하는 방식입니다. 이 글에서는 길이가 같은 세 개의 리스트를 Python 딕셔너리로 묶어 Pandas DataFrame을 만드는 방법을 알아보겠습니다.

1. 개별 리스트와 딕셔너리 활용하기

이 방법에서는 각 리스트를 먼저 개별적으로 선언합니다. 그다음 선언된 리스트들을 딕셔너리 정의 안에서 적절한 키(key)에 대응하는 값(value)으로 지정하고, 마지막으로 Pandas의 pd.DataFrame 메서드를 딕셔너리에 적용하여 DataFrame을 생성합니다.

예제 코드

import pandas as pd

# 시험 일정용 리스트
Days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
Sub = ['Chemistry', 'Physics', 'Maths', 'English', 'Biology']
Time = ['2 PM', '10 AM', '11 AM', '1 PM', '3 PM']

# 시험 일정 딕셔너리
Exam_Schedule = {'Exam Day': Days,
                 'Exam Subject': Sub,
                 'Exam Time': Time}

# 딕셔너리를 DataFrame으로 변환
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

2. 딕셔너리 안에 리스트를 직접 작성하기

이 방법은 리스트를 별도로 선언하지 않고, 딕셔너리의 값 부분에 직접 작성하는 방식입니다. 이후 딕셔너리를 DataFrame으로 변환하는 과정은 앞선 방법과 동일합니다. 코드가 더 간결해지고 데이터 구조를 한눈에 파악하기 쉬워집니다.

예제 코드

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']
}

# 딕셔너리를 DataFrame으로 변환
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

마무리

두 방법 모두 결과는 완전히 동일하며, 상황에 따라 더 편리한 쪽을 선택하면 됩니다. 데이터가 이미 변수로 존재한다면 첫 번째 방법이, 간단한 예제나 소규모 데이터를 다룰 때는 두 번째 방법이 코드 가독성 면에서 유리합니다. 참고로 딕셔너리의 각 키는 DataFrame의 열(column) 이름이 되고, 해당 키의 리스트 값들은 열의 데이터로 들어가게 됩니다. 단, 모든 리스트의 길이가 같아야 오류 없이 DataFrame이 생성된다는 점을 기억하세요.