Streamlit fragments 사용하기

Streamlit fragments 사용하기

Streamlit
Streamlit fragments 사용하기
Author

gabriel yang

Published

September 19, 2024


Streamlit의 st.column_config.LinkColumn: 링크 컬럼을 활용한 데이터 표현

Streamlit은 데이터 애플리케이션을 쉽게 만들 수 있는 강력한 도구입니다. 그중 st.column_config.LinkColumn은 데이터프레임의 특정 열에 링크를 추가하여 사용자에게 정보를 제공하는 데 매우 유용합니다. 이번 글에서는 LinkColumn의 기본 사용법과 함께 간단한 예제를 소개하겠습니다.

LinkColumn이란?

st.column_config.LinkColumn은 데이터프레임에서 URL 링크를 포함한 열을 만들어 주는 기능입니다. 이를 통해 사용자는 클릭하여 외부 웹페이지나 리소스로 이동할 수 있습니다. 이 기능은 특히 데이터 시각화 대시보드나 보고서에서 유용하게 활용될 수 있습니다.

기본 사용법

LinkColumn을 사용하기 위해서는 먼저 Streamlit의 column_config 모듈을 임포트해야 합니다. 그 후, 데이터프레임을 생성하고 링크 컬럼을 추가하면 됩니다.

예제: 웹사이트 링크 목록

아래 예제에서는 다양한 웹사이트의 링크를 포함한 데이터프레임을 생성해 보겠습니다.

전체 코드

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

```python
import streamlit as st
import pandas as pd

# 웹사이트 데이터 생성
data = {
    '사이트 이름': ['Google', 'YouTube', 'GitHub'],
    '링크': [
        'https://www.google.com',
        'https://www.youtube.com',
        'https://www.github.com'
    ]
}

df = pd.DataFrame(data)

st.data_editor(
    df,
    column_config={
        "링크": st.column_config.LinkColumn(
            "링크", display_text="Open profile")
    }
)

### 코드 설명

1. **라이브러리 임포트**: Streamlit과 pandas를 임포트하여 웹 애플리케이션을 구성합니다.

2. **데이터프레임 생성**: 웹사이트 이름과 해당 URL 링크를 포함한 데이터프레임을 생성합니다.

3. **링크 컬럼 추가**: 링크를 마크다운 형식으로 변환하여 사용자가 클릭할 수 있도록 합니다. `lambda` 함수를 사용하여 URL에서 도메인 부분만 추출하여 표시합니다.

4. **데이터 표시**: `st.markdown`을 사용하여 HTML 링크가 포함된 데이터프레임을 Streamlit 애플리케이션에 표시합니다.

<div class="d-flex justify-content-center mt-5">
    <h3>카테고리 다른 글</h3>
</div>



:::{#quarto-navigation-envelope .hidden}
[BookShelf]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyLXRpdGxl"}
[BookShelf]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXItdGl0bGU="}
[Home]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6SG9tZQ=="}
[/index.html]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6L2luZGV4Lmh0bWw="}
[Blog]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6QmxvZw=="}
[/blog/blog.html]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6L2Jsb2cvYmxvZy5odG1s"}
[Books]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6Qm9va3M="}
[/book_blog/book_blog.html]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6L2Jvb2tfYmxvZy9ib29rX2Jsb2cuaHRtbA=="}
[DashBoard]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6RGFzaEJvYXJk"}
[/dashboard_blog/dashboard_blog.html]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6L2Rhc2hib2FyZF9ibG9nL2Rhc2hib2FyZF9ibG9nLmh0bWw="}
[About]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6QWJvdXQ="}
[/about.html]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXI6L2Fib3V0Lmh0bWw="}

:::{.hidden .quarto-markdown-envelope-contents render-id="Zm9vdGVyLWNlbnRlcg=="}
gabrielwithhappy@gmail.com
:::

:::


:::{#quarto-listing-pipeline .hidden}
[$e = mC^2$]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWVuYWJsZS1tYXRoLWlubGluZQ=="}

:::{.hidden .quarto-markdown-envelope-contents render-id="cGlwZWxpbmUtbGlzdGluZy1saXN0aW5n"}


```{=html}
<table class="quarto-listing-table table">
<thead>
<tr>

<th>
Date
</th>

<th>
Title
</th>

<th>
Author
</th>

</tr>
</thead>
<tbody class="list">

<tr data-index='0' data-categories='QUklMkNBV1MlMkNBZ2lsZSUyQ0JpZ1F1ZXJ5JTJDQm9va1JldmlldyUyQ0J1c25pZXNzJTIwQW5hbHlzaXMlMkNEYXRhJTIwVmlzdWFsaXphdGlvbiUyQ0RhdGFiYXNlJTJDRGVzaWduUGF0dGVybiUyQ0Rldk9wcyUyQ0RvY2tlciUyMENvbXBvc2UlMkNHSVQlMkNHaXQlMkNIdWdnaW5nRmFjZSUyQ0ppbmphJTJDSmlyYSUyQ0tNUyUyQ1BhbmRhcyUyQ1B5bW9uZ28lMkNQeXRob24lMkNRdWFydG8lMkNSZWZhY3RvcmluZyUyQ1N0cmVhbWxpdCUyQ1dlYiUyQ0Zhc3RhcGk=' data-listing-date-sort='32503680000000' data-listing-file-modified-sort='1754663489269' data-listing-date-modified-sort='NaN' data-listing-reading-time-sort='5' data-listing-word-count-sort='952' data-listing-title-sort='전체 카테고리' data-listing-filename-sort='30000101.qmd'>
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 데이터프레임 수정하기 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

:::

:::