개발고생일지/파이썬

pandas Empty Dataframe(빈 데이터 프레임) 만드는 방법

Fartist 2023. 3. 24. 15:19
- 목차
들어가는 말
1. 빈 데이터 프레임 만들기
2. 열(columns)을 지정하여 빈 데이터 프레임 만들기
3. 행(index)을 지정하여 빈 데이터 프레임 만들기
4. 열(columns)과 행(index)을 지정한 빈 데이터 프레임 만들기
갈무리

[그림 1] 파이썬 빈 데이터프레임 만들기
[그림 1] 파이썬 빈 데이터프레임 만들기


들어가는 말

 Open API에서 데이터를 받아와 데이터 프레임으로 정리를 할 때, 여러 데이터를 한 데 묶어서 관리하기 위해 빈 데이터 프레임을 만들 필요가 있었습니다. 방금 언급한 사례 외에도 pandas를 이용해 빈 데이터 프레임을 만들어야 하는 상황은 무궁무진합니다. 이제부터 빈 데이터 프레임을 만드는 방법과 실수하기 쉬운 사례를 살펴보고 자신에게 맞는 코드가 무엇인지 살펴보시기 바랍니다. 


1.  빈 데이터 프레임 만들기

import pandas as pd

empty_datafrmae = pd.DataFrame()

print(type(empty_datafrmae))
#<class 'pandas.core.frame.DataFrame'>

empty_datafrmae.info
#<bound method DataFrame.info of Empty DataFrame
#Columns: []
#Index: []>

[코드 1] pandas로 빈 데이터프레임 만들기

 pandas를  'pd'로 약어 호출을 진행합니다. 변수 empty_dataframe을 'DataFrame()' 메서드를 활용해, 빈 데이터프레임으로 선언합니다. type() 함수를 이용해 데이터 타입을 확인해 보면 pandas의 DataFrame 형식을 따르고 있음을 확인할 수 있습니다.

 .info = 데이터프레임의 정보를 출력합니다.

 .info 메서드를 이용해 방금 만든 데이터프레임의 정보를 열람해 보면 'Empty DataFrame'으로 설명하고 있습니다. Columns와 Index가 빈 리스트를 가지고 있는 것도 확인할 수 있습니다.


2.  열 제목(columns)을 지정하여 빈 데이터 프레임 만들기

 

import pandas as pd

df_01 = pd.DataFrame(columns = ['col_01', 'col_02', 'col_03'])

df_01.info
#<bound method DataFrame.info of Empty DataFrame
#Columns: [col_01, col_02, col_03]
#Index: []>

[코드 2] pandas로 열 제목을 가지는 빈 데이터 프레임 만들기

[그림 2] 빈 데이터프레임
[그림 2] 빈 데이터프레임

  [코드 1]에서 .DataFrame() 메서드로 빈 데이터 프레임을 만드는 것을 확인했습니다. 이번엔 소괄호() 안에 'columns = []' 를 이용해 열 제목을 지정해서 빈 데이터프레임을 만들어 봅니다. [코드 2]를 보면 소괄호 안에서 리스트를 columns에 할당합니다. 그렇게 만든 데이터프레임 ' df_01'의 정보를 열람하면 'Empty DataFrame'이면서 Columns에서는 = 리스트에 있던 데이터를 열 제목으로 가진다는 것을 확인할 수 있습니다. [그림 2]은 명령줄에 'df_01'을 입력하면 출력되는 화면을 캡처한 것입니다. 행(index)은 없고 (열) columns만 지정했기 때문에 행 없이 열만 있는 데이터프레임 표가 출력되었습니다.

 만약 열 1개를 가지는 데이터프레임을 만든다면 어떨까요? 여러 개의 열 제목을 리스트로 묶어서 했다면 이번엔 하나의 열 제목만 지정하면 되므로 리스트가 아닌 단일 문자열로 columms에 할당하면 될까요? [코드 3]을 보면 그렇지 않습니다.

df_02 = pd.DataFrame(columns='a')

#TypeError: Index(...) must be called with a collection of some kind, 'a' was passed

[코드 3] 열 제목이 하나일 때 빈 데이터프레임 만들기

 에러 메시지로 'collection(리스트)'으로 선언되지 않았다고 합니다. 데이터프레임을 만들 때는 열 제목이 하나뿐이라도 반드시 리스트 안에 넣어서 지정해야 합니다. 올바르게 고친다면 [코드 4]와 같습니다.

df_02= pd.DataFrame(columns= ['a'])

df_02.info
#<bound method DataFrame.info of Empty DataFrame
#Columns: [a]
#Index: []>

[코드 4] 열 제목 하나만 가지는 빈 데이터프레임 만들기 

 열을 하나만 가지는 빈 데이터프레임이 정상적으로 만들어진 것을 확인할 수 있습니다.


3.  행(index)을 지정하여 빈 데이터 프레임 만들기

경우에 따라서는 미리 정해진 행(index)을 만들어두고 나중에 데이터 값(values)을 입력해야 할 수도 있습니다. 그럴 때는 미리 행을 지정하여 빈 데이터프레임을 만들어 줍니다.

df_03 = pd.DataFrame(index = ['1', '2', '3'])

df_03.info
#<bound method DataFrame.info of Empty DataFrame
#Columns: []
#Index: [1, 2, 3]>

[코드 5] 행을 지정하여 빈 데이터프레임 만들기

[그림 3] 행을 지정하여 빈 데이터프레임 만들기
[그림 3] 행을 지정하여 빈 데이터프레임 만들기

 [코드 5]를 보면 DataFrame() 메서드 안에서 'index = []'의 형태로 행(index)을 지정합니다. .info 메서드로 확인한 결과 정상적으로 행 [1, 2, 3]을 가지는 빈 데이터프레임이 생성된 것을 확인할 수 있습니다. df_03을 입력하여 데이터프레임을 출력해 보면 [그림 3]과 같이 열이 없는 행(index)만 존재하는 빈 데이터프레임이 나타납니다.


4. 열(columns)과 행(index)을 지정한 빈 데이터 프레임 만들기

이번에는 열과 행을 모두 가지는 빈 데이터 프레임을 만들어보겠습니다. 만드는 방법은 2, 3에서 살펴본 열을 지정해서 만드는 방법과 행을 지정해서 만드는 방법을 합치면 됩니다.

df_04 = pd.DataFrame(columns = ['a', 'b', 'c'], index = ['1', '2', '3'])

df_04.info
#<bound method DataFrame.info of      a    b    c
#1  NaN  NaN  NaN
#2  NaN  NaN  NaN
#3  NaN  NaN  NaN>

[코드 6] 열과 행을 지정한 빈 데이터 프레임

[그림 4] 열과 행 모두 지정한 빈 데이터프레임
[그림 4] 열과 행 모두 지정한 빈 데이터프레임

 열에는 ['a', 'b', 'c'] 리스트가 입력하고, 행에는 ['1', '2', '3'] 리스트를 입력했습니다. 그 결과 'df_04'를 입력하여 빈 데이터프레임을 출력해보면 [그림 4]와 같이 값(values)이 비어있는 빈 데이터프레임이 만들어진 것을 확인할 수 있습니다.


갈무리

빈 데이터프레임은 크롤링을 하는 과정에서 수집한 정보를 데이터프레임에 입력하기 전에 한번쯤은 생성하게 됩니다. 보통은 열과 행이 지정되지 않은 완전히 빈 데이터 프레임을 생성하고 그 안에 수집한 정보를 할당하는 방식으로 크롤링이 진행되는데요. 완전히 빈 데이터 프레임은 간혹 index와 columns이 존재하지 않는다는 이유로 특정 메서드가 작동하지 않기도 합니다. 그럴 때는 각자의 필요에 따라 알맞은 빈 데이터 프레임을 사용하시기를 바랍니다.

반응형