판다스(pandas)에서 데이터프레임(DataFrame)을 생성하는 다양한 방법

다양한 분야에서 여러 목적으로 판다스(pandas)가 사용됩니다. 그렇기 때문에 판다스는 다양한 형태의 데이터가 데이터프레임(DataFrame)으로 다루어질 수 있도록 유연하게 설계되었습니다. 기본적인 파이썬의 빌트인 타입인 딕셔너리(dict)와 리스트(list) 뿐만 아니라 넘파이(NumPy) 에서의 n-차원의 배열 객체인 np.ndarray, 그리고 시리즈(Series)와 인덱스(Index)와 같은 판다스의 자료형도 데이터프레임을 만드는 데에 넣어줄 수 있습니다.

하지만 이렇게 데이터를 입력하는 방법이 다양하다는 점은 판다스를 이제 막 다루기 시작한 사람들에게는 데이터프레임을 만들기 위해 어떤 방법을 택해야 할지 막막하게 다가올 수도 있을 것 같습니다. 이 글이 그런 부분들을 조금이나마 해소하고, 여러 방법들을 체계적으로 파악하는 데에 길잡이가 될 수 있으면 좋겠습니다.

딕셔너리(dict)를 이용해 만들기

가장 기본적이며 많이 사용되는 데이터프레임 생성 방법입니다. 파이썬의 빌트인 타입인 딕셔너리 형태로 되어있는 데이터로부터 데이터프레임을 만듭니다. 이 때, 딕셔너리에 들어있는 key-value 쌍은 각각 만들어질 컬럼의 이름과 값이 됩니다. 그리고 dict 의 value 값은 tuple, list, Series 와 같이 iterable 한 속성을 가진 자료형을 넣어주면 됩니다. 예제를 살펴보겠습니다.

df = pd.DataFrame({
    'id': [1001, 1002, 1003, 1004],
    'name': ['Kim', 'Lee', 'Park', 'Choi'],
    'age': [31, 20, 71, 55],
})

리스트(list)를 이용해 만들기

앞서 딕셔너리로 만들었던 데이터프레임을 이번에는 리스트를 이용하여 만들어 보도록 하겠습니다. 이 때에는 리스트 안에 리스트가 있는 모양인 nested list 형태로 만들어주시면 됩니다. 그리고 컬럼의 이름을 넣어줄 때에는 columns= 인자를 이용하여 넣어주면 됩니다.

df = pd.DataFrame([
    [1001, 'Kim', 31],
    [1002, 'Lee', 20],
    [1003, 'Park', 71],
    [1004, 'Choi', 55],
], columns=['id', 'name', 'age'])