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

파이썬 Pandas에서 Series 딕셔너리로 데이터프레임(DataFrame) 생성하는 방법

데이터프레임(DataFrame)은 데이터를 행(row)과 열(column)로 이루어진 표 형태로 저장하는 2차원 데이터 구조입니다. SQL의 데이터 테이블이나 엑셀 시트와 비슷한 형태로 시각화할 수 있으며, 다음과 같은 생성자를 통해 만들 수 있습니다.

pd.Dataframe(data, index, columns, dtype, copy)

이번 글에서는 Series의 딕셔너리(사전)를 활용해 데이터프레임을 생성하는 방법을 자세히 알아보겠습니다.

Series란 무엇인가?

  • Series는 파이썬 Pandas 라이브러리에 포함된 1차원 데이터 구조입니다.

  • Series의 축 레이블(axis label)들을 모아서 인덱스(index)라고 부릅니다.

  • 정수(int), 실수(float), 문자열(string), 파이썬 객체 등 어떤 타입의 데이터든 저장할 수 있습니다.

예제 코드

import pandas as pd
my_data = {'ab' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
'mn' : pd.Series([56, 78, 13, 13], index=['a', 'b', 'c', 'd'])}
my_df = pd.DataFrame(my_data)
print("Series 딕셔너리로 생성한 데이터프레임 : ")
print(my_df)

실행 결과

Series 딕셔너리로 생성한 데이터프레임 :
    ab   mn
a  1.0  56
b  2.0  78
c  3.0  13
d  NaN  13

코드 설명

  • 필요한 라이브러리를 임포트하고, 사용 편의성을 위해 별칭(alias)을 지정합니다.

  • 키(key)와 값(value)으로 구성된 딕셔너리를 생성하는데, 여기서 값은 실제로 Series 데이터 구조입니다.

  • 이렇게 만든 Series 딕셔너리를 Pandas 라이브러리의 DataFrame 함수에 매개변수로 전달합니다.

  • 데이터프레임은 Series 딕셔너리를 인자로 넘겨 생성되며, 각 Series가 하나의 열(column)이 됩니다.

  • 생성된 데이터프레임이 콘솔에 출력됩니다.

주의할 점: NaN 값 처리

출력 결과를 보면 'd' 행의 'ab' 열에 NaN(Not a Number)이라는 값이 표시됩니다. 이는 해당 [행, 열] 위치에 유효한 데이터가 없다는 의미입니다. 두 Series의 인덱스 길이가 서로 다르기 때문에('ab'는 a~c까지, 'mn'은 a~d까지 존재), 짧은 쪽 Series에 없는 인덱스 위치에는 자동으로 NaN이 채워집니다. Pandas는 이처럼 인덱스를 기준으로 데이터를 정렬(alignment)하며, 누락된 값은 NaN으로 처리한다는 점을 기억하면 좋습니다.