programming/Python

[파이썬] streamlit의 dataframe& session_state 알아보기

Jofresh 2023. 12. 27. 14:31
728x90
반응형

아래 코드는 Streamlit을 사용하여 간단한 데이터 시각화 애플리케이션을 만드는 예제입니다. 코드를 세부적으로 살펴보겠습니다.

sns에서 제공되는 기본 데이터를 불러와서 시각화 하는데, 체크박스를 만들어서 클릭하고, 클릭하지 않았을 때 효과를 넣는 방법에 대한 내용입니다.

 


Streamlit 및 관련 라이브러리 임포트:

import streamlit as st
import pandas as pd
import seaborn as sns


필요한 라이브러리들을 임포트합니다. streamlit은 웹 애플리케이션을 만들기 위한 주요 라이브러리이고, pandas는 데이터프레임을 다루기 위한 라이브러리, seaborn은 시각화를 위한 라이브러리입니다.

 

데이터 캐싱을 위한 데코레이터 설정:

@st.cache_data 
def load_data(): 
	df = sns.load_dataset("iris") return df


@st.cache_data 데코레이터는 데이터를 캐싱하여 동일한 데이터에 대한 요청이 있을 때 다시 계산하지 않고 저장된 값을 반환합니다. load_data 함수는 Iris 데이터셋을 불러와서 반환합니다.

 

반응형


메인 함수 정의:

def main():
    st.title("데이터 시각화")
    st.checkbox("use container width",value=False,key='use_container_width')

    iris = load_data()
    st.dataframe(iris, use_container_width= st.session_state.use_container_width)


st.title("데이터 시각화"): Streamlit 앱의 제목을 설정합니다.
st.checkbox("use container width", value=False, key='use_container_width'): 체크박스를 생성하여, 사용자가 "use container width"를 선택하면 특정 상태를 설정할 수 있습니다. 이 상태는 st.session_state.use_container_width에 저장됩니다.
iris = load_data(): load_data 함수를 호출하여 Iris 데이터셋을 불러옵니다.
st.dataframe(iris, use_container_width=st.session_state.use_container_width): 데이터프레임을 시각화합니다. use_container_width 매개변수는 컨테이너 너비에 맞게 조절할지 여부를 나타냅니다. 체크박스의 상태에 따라 동적으로 변경됩니다.

 


_main_ 블록:

 

if _name_ == "_main_": main()


Python 스크립트가 직접 실행될 때만 main() 함수가 호출되도록 하는 블록입니다.
이 코드는 간단한 Streamlit 앱을 만들어 Iris 데이터를 시각화하는 예제입니다. 체크박스를 통해 컨테이너 너비를 동적으로 변경할 수 있는 기능을 제공합니다.

 

 

전체 코드 🔻

import streamlit.components.v1 as components
import streamlit as st
import pandas as pd
import seaborn as sns

@st.cache_data
def load_data():
    df = sns.load_dataset("iris")
    return df

def main():
    st.title("데이터 시각화")
    st.checkbox("use container width",value=False,key='use_container_width')

    iris = load_data()
    st.dataframe(iris, use_container_width= st.session_state.use_container_width)


if __name__ == "__main__":
    main()

 

 

실행결과 🔻

 

누르지 않으면 이런 모습

 

 

체크박스 클릭시 이렇게 동적으로 표가 커진다.

 

 

 

 

 

 

** 이전 글 참조

2023.12.26 - [programming/Python] - [파이썬] Streamlit을 이용한 간단한 웹 애플리케이션 개발

 

[파이썬] Streamlit을 이용한 간단한 웹 애플리케이션 개발

1. Streamlit 설치 Streamlit은 Python 패키지이므로 pip를 사용하여 간단히 설치할 수 있습니다. pip install streamlit 2. 간단한 Streamlit 앱 만들기 간단한 예제를 통해 Streamlit을 어떻게 사용하는지 알아보겠

jofresh.tistory.com

2023.12.26 - [programming/Python] - [파이썬] streamlit에 JS코드 적용하기

 

[파이썬] streamlit에 JS코드 적용하기

streamlit에 자바스크립트 코드 적용하기 자바스크립트 코드를 불러와주는 [components]라이브러리를 import합니다. js 코드를 아래 양식에 맞게 작성한 뒤, components.html로 호출하면 끝! import streamlit.compo

jofresh.tistory.com

 

728x90
반응형