PyGWalker와 Gradio를 사용하는 방법
PyGWalker는 데이터를 대화형 시각화 앱(예: Tableau 또는 PowerBI와 유사)로 변환하는 Python 라이브러리입니다. 예를 들어, 데이터 과학자들은 주피터 노트북에서 pygwalker를 사용하여 데이터를 대화형 모듈로 변환하여 시각화를 탐색할 수 있습니다. 코드 작성이나 다른 도구로 전환하지 않고도 드래그 앤 드롭 또는 자연어를 사용하여 시각화를 탐색할 수 있습니다.
그러나 대화형 시각화를 다른 사람들과 공유하는 방법은 어떻게 될까요? 사용자가 직접 데이터를 탐색할 수 있도록 어떻게 할까요? 이 튜토리얼에서는 pygwalker를 Gradio와 함께 사용하여 데이터 탐색 및 공유 앱을 구축하는 방법을 보여드리겠습니다.
Gradio란?
Gradio (opens in a new tab)는 머신러닝 모델, 딥러닝 모델 및 기타 함수 주위에 사용자 정의 가능한 UI 구성요소를 빠르게 생성할 수 있는 Python 라이브러리입니다. 몇 줄의 코드로 모델을 위한 간단하고 공유 가능한 UI를 만들 수 있습니다. Gradio는 모델을 다른 사람들과 공유하기 위한 웹 앱을 빠르게 생성하는 데 사용할 수 있는 훌륭한 도구입니다.
PyGWalker와 Gradio 사용 방법
먼저, PyGWalker를 Gradio와 함께 실행하기 전에 컴퓨터에 Python 환경이 설정되어 있는지 확인해야 합니다(버전 3.6 이상). 설정이 완료되었다면 다음 간단한 단계를 따르세요:
좋아요! 이미 상당한 진전을 이루었네요. 제공된 정보를 활용하여 튜토리얼 기사를 완성하는 데 도움을 드리겠습니다.
PyGWalker를 Gradio와 통합하는 단계별 가이드
1. 설치
시작하기 전에 pygwalker
와 gradio
모두 설치되어 있어야 합니다. 아직 설치하지 않은 경우 pip를 사용하여 설치할 수 있습니다:
pip install pygwalker gradio
2. 필요한 라이브러리 가져오기
코드에서 보여진 대로 필요한 모든 모듈을 가져오세요:
import gradio as gr
import pygwalker as pyg
from datasets import load_dataset
3. 데이터셋 불러오기
이 튜토리얼에서는 Gradio의 NYC-Airbnb 데이터셋을 사용하지만, 선택한 데이터셋으로 변경하셔도 됩니다:
dataset = load_dataset("gradio/NYC-Airbnb-Open-Data", split="train")
df = dataset.to_pandas()
4. PyGWalker와 Gradio를 사용하여 인터페이스 구축하기
Gradio의 Blocks 기능을 사용하여 사용자 인터페이스 구성 요소를 캡슐화하세요. 제공된 코드와 같이 사용하세요:
with gr.Blocks() as demo:
gr.Label("PyGWalker와 Gradio를 사용한 NYC-Airbnb 데이터 시각 탐색")
gr.Markdown("이는 pygwalker와 gradio 라이브러리로 구축된 데이터 앱입니다. 데이터를 탐색하는 데 드래그 앤 드롭 작업을 사용할 수 있습니다. 분석을 시작하세요!")
gr.HTML(pyg.walk(dataset=df, spec="./viz-config.json", debug=False, return_html=True))
아래는 각 요소에 대한 설명입니다:
gr.Label()
: Gradio 인터페이스에 레이블 또는 제목을 제공합니다.gr.Markdown()
: 자세한 설명이나 정보를 위해 마크다운 형식의 텍스트를 포함할 수 있습니다.gr.HTML()
: 여기서pygwalker
가 필요합니다.pyg.walk()
함수는 데이터셋을 대화형 시각화로 변환한 다음, 이 HTML 구성 요소를 통해 Gradio 인터페이스에 렌더링됩니다.
5. 앱 실행
마지막으로, 한 줄의 간단한 명령으로 웹 앱을 실행할 수 있습니다:
demo.launch()
스크립트를 실행하면 대화형 데이터 시각화가 브라우저에서 사용할 수 있게 됩니다. 드래그 앤 드롭 기능이나 자연어를 사용하여 데이터셋을 탐색할 수 있습니다(카나리 API 키가 필요합니다).
PyGWalker와 gradio를 통합하는 더 네이티브한 방법
pygwalker에는 데이터 탐색을 가속화하기 위해 duckDB를 활용하는 커널 계산과 같은 고급 기능이 포함되어 있습니다. pygwalker 버전>=0.3.10
부터 gradio를 원활하게 지원합니다.
from pygwalker.api.gradio import PYGWALKER_ROUTE, get_html_on_gradio
with gr.Blocks() as demo:
# 데이터셋 로드
dataset = load_dataset("gradio/NYC-Airbnb-Open-Data", split="train")
df = dataset.to_pandas()
pyg_app = get_html_on_gradio(df, spec="./viz-config.json")
gr.HTML(pyg_app)
app = demo.launch(app_kwargs={
"routes": [PYGWALKER_ROUTE]
})
결론
pygwalker
와 gradio
의 강력한 기능을 결합하여 대화형 데이터 시각화를 빠르게 구축하고 공유할 수 있습니다. 데이터 탐색을 간소화하는 뿐만 아니라 비기술적 사용자도 결과물과 상호 작용할 수 있도록하여 데이터 인사이트의 접근성을 더욱 높일 수 있습니다. 한 번 시도해보고 세계와 인사이트를 공유하세요!
참고 자료
[1] Gradio (opens in a new tab) [2] PyGWalker 문서 (opens in a new tab) [3] pygwalker + gradio Playground (opens in a new tab) [4] pygwalker GitHub (opens in a new tab)