Pandas는 일반적으로 CSV 파일을 읽어 DataFrame을 생성하는 데 많이 사용되지만, 파일이 아닌 문자열(string) 형태의 데이터로도 동일한 작업을 수행할 수 있습니다. 이 글에서는 문자열 데이터를 활용해 Pandas DataFrame을 구성하는 방법을 알아보겠습니다.
StringIO를 활용한 문자열 데이터 처리
문자열 데이터를 CSV처럼 다루려면 io 모듈의 StringIO 래퍼(wrapper)를 사용해야 합니다. StringIO는 문자열을 마치 파일 객체처럼 취급할 수 있게 해주기 때문에, pd.read_csv() 함수가 문자열 데이터를 CSV 리더를 통해 읽은 것과 동일하게 처리할 수 있습니다.
아래 예제에서는 각 필드가 세미콜론(;)으로 구분된 문자열 데이터를 사용합니다.
예제 코드
다음 코드를 통해 실제 구현 과정을 확인해 보겠습니다.
import pandas as pd
from io import StringIO
str_data = StringIO("""Id;Subject;Course_Fee
10;DBMS;3000
11;Basic Maths;2000
12;Data Science;40000
13;Algorithm;5000
""")
df = pd.read_csv(str_data, sep=";")
print(df)실행 결과
위 코드를 실행하면 다음과 같은 DataFrame이 출력됩니다.
Id Subject Course_Fee 0 10 DBMS 3000 1 11 Basic Maths 2000 2 12 Data Science 40000 3 13 Algorithm 5000
핵심 포인트 정리
StringIO는 문자열을 파일 객체처럼 다룰 수 있게 해주는 도구입니다.pd.read_csv()의sep매개변수를 사용하면 쉼표 외에 세미콜론 등 다양한 구분자를 지정할 수 있습니다.- API 응답, 웹 스크래핑 결과 등 파일 저장 없이 바로 문자열 데이터를 DataFrame으로 변환해야 할 때 특히 유용합니다.
이처럼 StringIO와 pd.read_csv()를 조합하면 별도의 파일 생성 과정 없이 문자열 데이터를 손쉽게 DataFrame으로 변환할 수 있습니다.