Pandas에서 빈 DataFrame 만드는 방법
Updated on
데이터셋을 다루는 일은 어떤 데이터 분석 워크플로우에서도 핵심 단계입니다. 데이터가 CSV 파일, SQL 데이터베이스, JSON 응답, 외부 API 등 어디에서 오든, Pandas는 이를 정제·변환·탐색하기 위한 강력하고 직관적인 인터페이스를 제공합니다.
이 가이드에서는 Pandas에서 빈 DataFrame을 만드는 여러 가지 실용적인 방법을 살펴보고, 각 방법을 언제 써야 하는지 설명하며, 컬럼 타입까지 지정하는 현대적인 모범 사례를 함께 소개합니다.
🚀 DataFrame을 바로 인터랙티브한 시각화 도구로 바꾸고 싶나요?
PyGWalker는 Jupyter Notebook 안에서 바로 사용하는 드래그 앤 드롭 방식의 데이터 탐색 UI를 제공하는 오픈 소스 Python 라이브러리입니다.
아래처럼 바로 사용할 수 있습니다:
pip install pygwalker import pygwalker as pyg gwalker = pyg.walk(df)
아래 온라인 노트북에서 바로 PyGWalker를 써볼 수 있습니다:
| Run PyGWalker in Kaggle Notebook (opens in a new tab) | Run PyGWalker in Google Colab (opens in a new tab) | Give PyGWalker a ⭐️ (opens in a new tab) |
|---|---|---|
![]() | ![]() | ![]() |
DataFrame이란?
DataFrame은 Pandas에서 사용하는 2차원 표 형식의 데이터 구조로, 각 컬럼은 서로 다른 데이터 타입을 가질 수 있습니다. 엑셀 스프레드시트나 SQL 테이블과 비슷하다고 볼 수 있습니다. DataFrame은 다음과 같은 강력한 연산을 지원합니다:
- 필터링과 슬라이싱
- 병합과 조인
- 집계(aggregation)
- 형태 변환(reshaping)
- 시각화
왜 빈 DataFrame을 만들까?
빈 DataFrame은 다음과 같은 상황에서 유용합니다:
- 데이터를 로딩하기 전에 스키마를 미리 정의할 때
- 행을 코드로 동적으로 추가할 때
- 반복문이나 집계 결과를 저장할 테이블을 초기화할 때
- 점진적으로 업데이트할 구조를 준비할 때
예시: 제품 정보를 적재하기 전에, 제품 관련 컬럼을 가진 테이블 구조만 먼저 준비하는 경우.
⭐ 방법별 빠른 비교
| Method | Best Use Case |
|---|---|
pd.DataFrame() | 완전히 빈 껍데기 DataFrame이 필요할 때 |
pd.DataFrame(columns=[...]) | 컬럼 이름만 먼저 정의할 때 |
pd.DataFrame({col: []}) | 빈 리스트로 컬럼을 정의할 때 |
pd.Series(dtype=...) | 컬럼 이름과 dtype을 동시에 지정할 때 (실무 워크플로우에서 권장되는 방법) |
pd.DataFrame.from_dict() | dict 기반 방법과 동일, 주로 스타일 차이 |
빈 DataFrame을 만드는 방법 (3가지 기본 방식 + 1가지 현대적인 베스트 프랙티스)
방법 1: DataFrame() 생성자 사용
가장 단순한 방법입니다:
import pandas as pd
df = pd.DataFrame()
print(df)출력:
Empty DataFrame
Columns: []
Index: []이후에 컬럼을 추가하려면:
df.columns = ['ProductID', 'ProductName', 'Description', 'Price']
df방법 2: 빈 리스트를 가진 dict() 사용
이 방법은 DataFrame을 비워둔 채로 컬럼 이름을 정의합니다:
import pandas as pd
data = dict(ProductID=[], ProductName=[], Description=[], Price=[])
df = pd.DataFrame(data)
df방법 3: from_dict() 사용
방법 2와 동일하며, 주로 스타일 차이입니다:
import pandas as pd
data = {
'ProductID': [],
'ProductName': [],
'Description': [],
'Price': []
}
df = pd.DataFrame.from_dict(data)
df⭐ 현대적인 방법 (추천)
컬럼 이름과 데이터 타입을 함께 지정해 빈 DataFrame 만들기
Pandas 2.x에서는 컬럼 타입을 미리 정의해 두는 것이 모범 사례입니다:
import pandas as pd
df = pd.DataFrame({
"ProductID": pd.Series(dtype="int"),
"ProductName": pd.Series(dtype="string"),
"Description": pd.Series(dtype="string"),
"Price": pd.Series(dtype="float"),
})
df이 접근 방식은 다음 상황에 특히 적합합니다:
✔ API에서 데이터를 불러올 때
✔ 예측 가능한 타입을 유지하고 싶을 때
✔ ETL 파이프라인을 구성할 때
✔ 나중에 dtype 관련 경고를 피하고 싶을 때
DataFrame이 비었는지 확인하는 방법
.empty 속성을 사용합니다:
df = pd.DataFrame()
print(df.empty) # True
non_empty = pd.DataFrame({"A": [1]})
print(non_empty.empty) # False마무리
빈 DataFrame을 만드는 일은 Pandas에서 매우 기본적이지만 중요한 작업입니다. 워크플로우에 따라 다음과 같이 선택할 수 있습니다:
- 단순히 비어 있는 껍데기만 만들기
- 컬럼 이름만 먼저 초기화하기
- 명시적으로 dtype까지 정의하기 (깔끔한 파이프라인을 위해 권장)
- 가독성을 위해 dict 기반 스키마를 사용하기
이제 프로젝트에 가장 적합한 방법을 선택해, 더 깔끔하고 예측 가능한 Pandas 워크플로우를 구축할 수 있습니다.


