programming/Python

[파이썬] streamlit의 data_editor로 편집&분석도구 만들기

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

이 코드는 Streamlit을 사용하여 간단한 데이터 편집 및 분석 도구를 만드는 예제입니다. 코드를 세부적으로 살펴보겠습니다.

 


1.   라이브러리 임포트:

 

import streamlit as st import pandas as pd


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

 


2.   데이터프레임 생성:

 

df = pd.DataFrame( [ {"command": "st.selectbox", "rating": 4, "is_widget": True}, {"command": "st.balloons", "rating": 5, "is_widget": False}, {"command": "st.time_input", "rating": 3, "is_widget": True}, ] )


간단한 데이터프레임을 생성합니다. 이 데이터프레임은 "command"라는 명령어, "rating"이라는 평가, 그리고 "is_widget"이라는 위젯 여부를 나타내는 세 열을 가지고 있습니다.

 


3.   데이터프레임 편집기 열기:

 

edited_df = st.data_editor(df)


st.data_editor 함수를 사용하여 데이터프레임을 편집할 수 있는 편집기를 엽니다. 사용자는 이 편집기에서 데이터를 추가, 수정, 삭제할 수 있습니다.

 


4.   가장 선호하는 명령어 찾기:

 

favorite_command = edited_df.loc[edited_df["rating"].idxmax()]["command"]


편집된 데이터프레임에서 "rating"이 가장 높은 행을 찾고, 해당 행의 "command" 값을 가져와서 favorite_command에 저장합니다.

 


5.   결과 출력:

st.markdown(f"Your favorite command is **{favorite_command}** 🎈")


사용자의 가장 선호하는 명령어를 출력합니다. 이 부분은 Markdown을 사용하여 출력하고 있습니다.
따라서, 이 코드는 사용자가 입력한 데이터프레임을 편집하고, 그 중에서 가장 높은 평가를 받은 명령어를 찾아 사용자에게 보여주는 간단한 Streamlit 애플리케이션을 만드는 예제입니다.

 

전체 코드

 

import streamlit as st
import pandas as pd

df = pd.DataFrame(
    [
       {"command": "st.selectbox", "rating": 4, "is_widget": True},
       {"command": "st.balloons", "rating": 5, "is_widget": False},
       {"command": "st.time_input", "rating": 3, "is_widget": True},
   ]
)

edited_df = st.data_editor(df)
#table()에서 data_editor()로 바꾸면 수정가능하게 바뀐다.

favorite_command = edited_df.loc[edited_df["rating"].idxmax()]["command"]
st.markdown(f"Your favorite command is **{favorite_command}** 🎈")

 

실행 결과

- data_editor로 만든 표의 경우 수정이 가능합니다. 

 

728x90
반응형