Skip to content
PYGWALKER
Pygwalker와 Streamlit을 사용하는 방법

Pygwalker와 Streamlit으로 데이터 탐색 및 결과 공유하기

이 문서에서는 데이터를 분석하고 시각화하기 위해 PygwalkerStreamlit을 어떻게 사용할 수 있는지 알아보겠습니다. 재미있고 상호작용적인 여정이기 때문에 시작해봅시다!

Pygwalker란?

Pygwalker (opens in a new tab)는 데이터를 시각적으로 탐색할 수 있는 특수 목적의 데이터 탐색 환경인 Python 라이브러리입니다. Pygwalker는 Pandas/Polars/Modin 데이터프레임을 코드 없이 데이터 탐색을 위한 사용자 인터페이스로 간편하게 변환하여 Jupyter Notebook의 데이터 분석 및 시각화 작업 흐름을 단순화할 수 있습니다.

Pygwalker를 사용하면 적은 수의 드래그 앤 드롭 작업만으로 산점도, 선 그래프, 막대 그래프 및 히스토그램을 쉽게 생성할 수 있으며, 코딩 기술이 필요하지 않습니다. Pygwalker는 데이터 과학자와 데이터 분석가를 위해 특별히 설계된 강력한 도구로서, 데이터를 빠르고 쉽게 탐색하고 시각화하고자 하는 사용자들에게 이상적입니다.

Pygwalker에 대한 자세한 정보는 Coding is Fun의 Sven이 제작한 멋진 비디오 (opens in a new tab)를 확인하십시오.


Pygwalker 커뮤니티에 기여한 Sven과 그의 훌륭한 기여 (opens in a new tab)에 특별히 감사드립니다!

Pygwalker의 더 많은 예제를 위해 Pygwalker GitHub 페이지 (opens in a new tab)도 확인할 수 있습니다.

Streamlit이란?

Streamlit은 데이터 앱을 구축하고 공유하는 데 많이 사용되는 또 다른 인기있는 Python 라이브러리입니다. Streamlit을 사용하면 데이터 스크립트를 몇 분이면 웹 앱으로 바꿀 수 있습니다. 복잡한 웹 개발이나 코드 작성에 끊임없이 시간을 보내지 않아도 됩니다. Streamlit은 파이썬을 사용하여 대화형으로 공유 가능한 데이터 애플리케이션을 빠르고 오픈소스이며 완전히 무료로 만드는 방법입니다.

그렇다면 Pygwalker의 강력한 시각 분석 기능을 활용하여 시각적 탐색 앱을 구축하고 Streamlit으로 데이터 앱으로 게시하는 방법을 알아봅시다!

Streamlit에서 Pygwalker 사용 시작하기

Pygwalker를 Streamlit에서 실행하기 전에 먼저 컴퓨터에 파이썬 환경(버전 3.6 이상)이 설정되어 있는지 확인하십시오. 이 작업이 완료되었다면 다음 단계를 따르십시오.

종속성 설치

먼저, 명령 프롬프트 또는 터미널을 열고 다음 명령을 실행하여 필요한 종속성을 설치합니다.

pip install pandas
pip install pygwalker
pip install streamlit

Streamlit 애플리케이션에 Pygwalker 포함하기

이제 모든 종속성을 준비했으므로, Pygwalker를 통합한 Streamlit 애플리케이션을 만들어 보겠습니다. pygwalker_demo.py라는 새로운 Python 스크립트를 작성하고 다음 코드를 복사하여 붙여넣으십시오.

import pygwalker as pyg
import pandas as pd
import streamlit.components.v1 as components
import streamlit as st
 
# Streamlit 페이지 너비 조정
st.set_page_config(
    page_title="Streamlit에서 Pygwalker 사용하기",
    layout="wide"
)
 
# 타이틀 추가
st.title("Streamlit에서 Pygwalker 사용하기")
 
# 데이터 가져오기
df = pd.read_csv("https://kanaries-app.s3.ap-northeast-1.amazonaws.com/public-datasets/bike_sharing_dc.csv")
 
# Pygwalker를 사용하여 HTML 생성
pyg_html = pyg.to_html(df)
 
# HTML을 Streamlit 앱에 삽입
components.html(pyg_html, height=1000, scrolling=True)

Streamlit에서 Pygwalker에 대한 새 API(권장사항)

최신 버전의 pygwalker(>=0.3.9)에서는 고성능의 대용량 데이터셋을 처리하기 위해 duckdb 엔진을 사용할 수 있는 아래 코드를 사용할 수 있습니다.

from pygwalker.api.streamlit import StreamlitRenderer, init_streamlit_comm
import pandas as pd
import streamlit as st
 
# Streamlit 페이지 너비 조정
st.set_page_config(
    page_title="Streamlit에서 Pygwalker 사용하기",
    layout="wide"
)
 
# pygwalker와 streamlit 간의 통신 초기화
init_streamlit_comm()
 
# 타이틀 추가
st.title("Streamlit에서 Pygwalker 사용하기")
 
# pygwalker의 렌더러 인스턴스 가져오기. 이 인스턴스를 캐시해야 in-process 메모리가 적절히 증가되지 않습니다.
@st.cache_resource
def get_pyg_renderer() -> "StreamlitRenderer":
    df = pd.read_csv("https://kanaries-app.s3.ap-northeast-1.amazonaws.com/public-datasets/bike_sharing_dc.csv")
    # 앱을 퍼블릭으로 게시해야 할 때는 디버그 매개변수를 False로 설정하여 다른 사용자가 차트 구성 파일을 쓰지 못하도록 해야 합니다.
    return StreamlitRenderer(df, spec="./gw_config.json", debug=False)
 
renderer = get_pyg_renderer()
 
# 데이터 탐색 인터페이스를 렌더링합니다. 개발자들은 이를 사용하여 드래그 앤 드롭으로 차트를 생성할 수 있습니다.
renderer.render_explore()

Streamlit 애플리케이션에 Pygwalker 포함하기

Streamlit에서 Pygwalker로 데이터 탐색하기

다음 명령을 명령 프롬프트 또는 터미널에서 실행하여 Streamlit 애플리케이션을 시작하고 데이터를 탐색합니다.

streamlit run pygwalker_demo.py

다음과 같은 정보가 표시되어야 합니다.

  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://xxx.xxx.xxx.xxx:8501

제공된 URL(http://localhost:8501)을 웹 브라우저에서 열고, 와우! 이제 Pygwalker의 직관적인 드래그 앤 드롭 작업을 사용하여 데이터를 상호작용적으로 시각화하고 탐색할 수 있게 되었습니다.

Pygwalker 차트 상태 저장하기

Pygwalker 차트의 상태를 저장하고 싶다면 다음 단계를 따르면 됩니다.

  1. 차트에서 내보내기 버튼을 클릭합니다.

Streamlit에서 Pygwalker 차트 내보내기

  1. 코드 복사 버튼을 클릭합니다.

Streamlit에서 Pygwalker 코드 복사

  1. 복사한 코드를 필요한 위치에 붙여넣습니다.
import pygwalker as pyg
import pandas as pd
import streamlit.components.v1 as components
import streamlit as st
 
# Streamlit 페이지 너비 조정
st.set_page_config(
    page_title="Streamlit에서 Pygwalker 사용하기",
    layout="wide"
)
 
# 타이틀 추가
st.title("Streamlit에서 Pygwalker 사용하기")
 
# 데이터 가져오기
df = pd.read_csv("https://kanaries-app.s3.ap-northeast-1.amazonaws.com/public-datasets/bike_sharing_dc.csv")
 
# 복사한 Pygwalker 차트 코드를 붙여넣기
vis_spec = """<PASTE_COPIED_CODE_HERE>"""
 
# Pygwalker를 사용하여 HTML 생성
pyg_html = pyg.to_html(df, spec=vis_spec)
 
# HTML을 Streamlit 앱에 삽입
components.html(pyg_html, height=1000, scrolling=True)
  1. 웹 페이지를 다시로드하여 Pygwalker 차트의 저장된 상태를 확인합니다.

Pygwalker는 graphic-walker를 기반으로 하고 있으므로, Excel, Airtable과 같은 기타 플랫폼에서 graphic-walker/pygwalker를 포함하는 것과 같은 기능을 활용하여 Pygwalker 앱도 협업할 수 있습니다.

결론

Pygwalker와 Streamlit은 데이터 탐색과 공유를 훨씬 쉽게 만드는 훌륭한 도구입니다.

Pygwalker의 직관적인 인터페이스와 다양한 시각화 옵션, 그리고 Streamlit의 데이터 앱 구축과 공유 과정을 간소화하는 기능을 통해 시각적 UI를 갖춘 데이터 시각화와 탐색을 위한 데이터 앱을 빠르게 구축할 수 있습니다.

초보자든 숙련된 데이터 과학자든지, Pygwalker와 Streamlit은 데이터 분석 작업 흐름을 개선하고, 발견한 내용을 효과적으로 전달하는 데 도움을 줄 수 있습니다. 데이터를 탐색하고 세계와 놀라운 통찰력을 공유하세요!

참고 자료