Pandas에서 JSON 데이터 읽기 및 딕셔너리 활용하기
JSON(JavaScript Object Notation)은 데이터를 저장하고 교환하는 데 널리 사용되는 형식입니다. Pandas는 JSON 파일을 쉽게 읽고 변환할 수 있도록 강력한 기능을 제공합니다. 이 글에서는 Pandas를 활용하여 JSON 데이터를 읽는 방법과 Python 딕셔너리를 JSON처럼 활용하는 방법을 알아보겠습니다.
Pandas로 JSON 데이터 읽기
JSON 형식의 데이터를 Pandas 데이터프레임으로 변환하려면 read_json() 메서드를 사용합니다. 이는 JSON 파일뿐만 아니라 문자열 형태의 JSON 데이터도 처리할 수 있습니다.
1. JSON 파일 읽기
import pandas as pd
# JSON 파일을 읽어 데이터프레임으로 변환
file_path = 'data.json'
df = pd.read_json(file_path)
print(df)
2. JSON 문자열 읽기
json_data = '{"Name": ["Alice", "Bob"], "Age": [25, 30], "City": ["New York", "Los Angeles"]}'
df = pd.read_json(json_data)
print(df)
3. 주요 옵션:
orient: JSON 데이터의 구조를 지정 (예: records, split, columns 등).
lines=True: JSON 파일이 한 줄씩 저장된 경우 사용.
예시: 줄 단위 JSON 읽기
df = pd.read_json('data.json', lines=True)
딕셔너리를 JSON 데이터처럼 사용하기
Python의 딕셔너리는 JSON과 매우 유사한 구조를 가지고 있어, Pandas에서 JSON 데이터를 다룰 때 딕셔너리를 직접 활용할 수 있습니다.
1. 딕셔너리를 데이터프레임으로 변환
data = {
"Name": ["Alice", "Bob"],
"Age": [25, 30],
"City": ["New York", "Los Angeles"]
}
df = pd.DataFrame(data)
print(df)
2. 데이터프레임을 JSON으로 변환 Pandas의 to_json() 메서드를 사용하면 데이터프레임을 JSON 형식으로 저장할 수 있습니다.
json_output = df.to_json()
print(json_output)
3. JSON 파일로 저장
df.to_json('output.json', orient='records', indent=4)
실무에서 JSON 데이터 활용 팁
API 응답 처리
JSON은 REST API에서 데이터를 주고받는 주요 형식입니다. Pandas를 활용해 API 응답 데이터를 손쉽게 분석할 수 있습니다.
대용량 JSON 처리
chunksize를 사용해 대용량 JSON 파일을 나눠서 읽을 수 있습니다.
for chunk in pd.read_json('large_data.json', lines=True, chunksize=1000):
print(chunk.head())
데이터 정렬 및 필터링
Pandas를 활용하면 JSON 데이터를 빠르게 정리하고 필요한 정보만 추출할 수 있습니다.
df_sorted = df.sort_values(by='Age', ascending=False)
print(df_sorted)
결론
Pandas의 read_json() 메서드를 활용하면 JSON 데이터를 쉽게 데이터프레임으로 변환할 수 있으며, Python의 딕셔너리를 JSON과 같은 형식으로 사용하여 데이터를 효율적으로 관리할 수 있습니다. JSON은 API 응답, 웹 스크래핑, 데이터 저장 등 다양한 분야에서 활용되므로, Pandas와 함께 사용하면 데이터 분석과 처리가 더욱 편리해집니다.