Streamlit 데이터프레임 수정하기

Streamlit 데이터프레임 수정하기

Streamlit
Streamlit 데이터프레임 수정하기
Author

gabriel yang

Published

September 19, 2024


Streamlit은 데이터 애플리케이션을 쉽게 만들 수 있게 해주는 파이썬 라이브러리입니다. 그중 st.data_editor는 사용자가 데이터를 직접 편집할 수 있도록 돕는 유용한 컴포넌트입니다. 이번 블로그 글에서는 st.data_editor의 기본적인 사용법과 간단한 예제를 소개하겠습니다.

st.data_editor란?

st.data_editor는 데이터프레임 형태의 데이터를 테이블로 보여주고, 사용자가 이를 인터랙티브하게 편집할 수 있도록 해주는 Streamlit의 기능입니다. 사용자는 데이터를 직접 수정, 추가 또는 삭제할 수 있으며, 이러한 변경 사항은 실시간으로 반영됩니다.

기본 사용법

st.data_editor의 기본 사용법은 다음과 같습니다:

import streamlit as st
import pandas as pd

# 초기 데이터 생성
data = {
    '이름': ['Alice', 'Bob', 'Charlie'],
    '나이': [24, 30, 22],
    '도시': ['서울', '부산', '대구']
}

df = pd.DataFrame(data)

# 데이터 편집기 생성
edited_df = st.data_editor("데이터 편집기", df)

위 코드를 실행하면 기본적인 데이터 편집기 UI가 나타납니다. 사용자는 이름, 나이, 도시 정보를 편집할 수 있습니다. 더 실용적인 예제로 학생 정보를 관리하는 웹 애플리케이션을 만들어보겠습니다.

1. 초기 데이터프레임 생성

import streamlit as st
import pandas as pd

# 초기 학생 데이터 생성
data = {
    '이름': ['Alice', 'Bob', 'Charlie'],
    '나이': [20, 22, 21],
    '전공': ['컴퓨터공학', '수학', '물리학']
}

df = pd.DataFrame(data)

2. 데이터 편집기 추가

# 데이터 편집기 생성
st.title("학생 정보 관리")

edited_df = st.data_editor("학생 정보 편집", df)

3. 변경된 데이터 처리

편집된 데이터를 처리하기 위해, 사용자가 ‘저장’ 버튼을 클릭하면 변경된 데이터프레임을 출력할 수 있습니다.

if st.button("저장"):
    st.success("데이터가 성공적으로 저장되었습니다!")
    st.write(edited_df)

전체 코드 예제

아래는 전체 코드를 통합한 예제입니다.

import streamlit as st
import pandas as pd

# 초기 학생 데이터 생성
data = {
    '이름': ['Alice', 'Bob', 'Charlie'],
    '나이': [20, 22, 21],
    '전공': ['컴퓨터공학', '수학', '물리학']
}

df = pd.DataFrame(data)

# 데이터 편집기 생성
st.title("학생 정보 관리")
edited_df = st.data_editor(df)

# 저장 버튼 및 데이터 출력
if st.button("저장"):
    st.success("데이터가 성공적으로 저장되었습니다!")
    st.write(edited_df)

  • st.data_editor(df): 데이터프레임 df를 편집할 수 있는 테이블을 생성합니다. 사용자는 이 테이블을 통해 데이터를 직접 수정할 수 있습니다. 수정된 데이터는 edited_df에 저장됩니다.
  • st.write(edited_df): 편집된 데이터프레임을 화면에 출력합니다. 사용자가 편집한 내용을 확인할 수 있습니다.
  • st.button(“저장”): “저장” 버튼을 생성합니다. 사용자가 이 버튼을 클릭하면 아래의 코드가 실행됩니다.
  • 데이터프레임의 수정 : 저장된 데이터 프레임이 변경되면 앱은 재 실행됩니다. 재 실행 시 button element는 false를 return하기 때문에 edited_df는 저장을 누를 때만 화면에 출력됩니다.
<h3>카테고리 다른 글</h3>
Date Title Author
Jan 1, 3000 전체 카테고리 gabriel yang
Sep 21, 2024 Streamlit 멀티 select 사용하기 gabriel yang
Sep 21, 2024 Streamlit selectbox를 사용하기 gabriel yang
Sep 19, 2024 Streamlit fragments 사용하기 gabriel yang
Sep 19, 2024 Streamlit form 사용하기 gabriel yang
Sep 19, 2024 Streamlit fragments 사용하기 gabriel yang
Sep 18, 2024 Streamlit docker로 배포하기 gabriel yang
Sep 18, 2024 Streamlit 실시간 업데이트 사용하기 gabriel yang
Sep 18, 2024 Streamlit에서 다이얼로그 사용하기 gabriel yang
Sep 18, 2024 Streamlit의 유지보수와 디버깅 팁 gabriel yang
Sep 17, 2024 Streamlit cache_resource 사용하기 gabriel yang
Sep 16, 2024 Streamlit cache 사용하기 gabriel yang
Sep 15, 2024 Streamlit 데이터프레임 선택하기 gabriel yang
Sep 14, 2024 Streamlit 다중 page 구성하기 gabriel yang
Sep 13, 2024 Streamlit Session_state 사용하기 gabriel yang
Sep 12, 2024 Streamlit을 활용한 기본 시각화 도구 gabriel yang
Sep 12, 2024 Streamlit에 Plotly 차트 적용하기 gabriel yang
Sep 11, 2024 Streamlit에서 파일 업로드하기 gabriel yang
Sep 11, 2024 Streamlit에 SQLite 데이터베이스 적용 gabriel yang
Sep 10, 2024 Streamlit UI 컴포넌트 소개 gabriel yang
Sep 9, 2024 Streamlit 사용 사례 gabriel yang
Sep 9, 2024 Streamlit 설치 및 환경설정 gabriel yang
Sep 9, 2024 Streamlit 애플리케이션 구조 이해 gabriel yang
Sep 9, 2024 Streamlit layout 설정하는 방법 gabriel yang
Sep 8, 2024 Streamlit이란 무엇인가요? gabriel yang
Sep 6, 2024 Streamlit Cloud로 앱 배포하기 gabriel yang
No matching items
Back to BLOG LIST