๊ด€๋ฆฌ ๋ฉ”๋‰ด

ruriruriya

[Python] ํŒŒ์ด์ฌ ์ŠคํŠธ๋ฆผ๋ฆฟ(Streamlit) - ํŒ๋‹ค์Šค ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์›น์— ๋‚˜ํƒ€๋‚ด๊ธฐ(dataframe) ๋ณธ๋ฌธ

๐ŸPython/Streamlit

[Python] ํŒŒ์ด์ฌ ์ŠคํŠธ๋ฆผ๋ฆฟ(Streamlit) - ํŒ๋‹ค์Šค ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์›น์— ๋‚˜ํƒ€๋‚ด๊ธฐ(dataframe)

๋ฃจ๋ฆฌ์•ผใ…‘ 2023. 11. 22. 09:31
๋ฐ˜์‘ํ˜•

Streamlit์—์„œ๋Š” ํŒ๋‹ค์Šค ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด st.dataframe() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒํ•œ ํ…Œ์ด๋ธ”๋กœ ํ‘œ์‹œํ•œ๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด streamlit๊ณผ pandas ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ž„ํฌํŠธํ•˜์—ฌ ํŒ๋‹ค์Šค ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ์›น์— ๋‚˜ํƒ€๋‚ด๋ณด์ž.

st.dataframe()

๋จผ์ € ๋ฉ”์ธ ํ•จ์ˆ˜ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค๊ณ  ํŒ๋‹ค์Šค read_csv๋กœ csv ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์™€ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ๋งŒ๋“ ๋‹ค.
๊ทธ๋ฆฌ๊ณ  st.dataframe() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ์›น ํ™”๋ฉด์— ํ‘œ์‹œํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  species ์ปฌ๋Ÿผ์˜ ์ข…๋ฅ˜๋ฅผ ํŒ๋‹ค์Šค์˜ nunique() ์‚ฌ์šฉํ•ด์„œ ์ข…๋ฅ˜์˜ ๊ฐฏ์ˆ˜๋ฅผ ์•Œ์•„๋‚ด์–ด์„œ
์›น ํ™”๋ฉด์— ํ‘œ์‹œํ•ด๋ณธ๋‹ค.

import streamlit as st
import pandas as pd

# ํŒ๋‹ค์Šค์˜ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„, ์›น ํ™”๋ฉด์œผ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ๋ฒ•

def main(): 
    st.title('์•„์ด๋ฆฌ์Šค ๊ฝƒ ๋ฐ์ดํ„ฐ')
    df = pd.read_csv('./data/iris.csv')

    st.dataframe(df)
    num_of_species = df['species'].nunique()
    st.text('์•„์ด๋ฆฌ์Šค ๊ฝƒ์˜ ์ข…๋ฅ˜๋Š” ์ด ' + str(num_of_species) + '๊ฐ€์ง€ ์ž…๋‹ˆ๋‹ค') 
    

if __name__ == '__main__':
    main()

 

[์ถœ๋ ฅ ํ™”๋ฉด]

st.dataframe() ํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ธ์ˆ˜๋ฅผ ์ง€์›ํ•œ๋‹ค.

  • df: ํ‘œ์‹œํ•  ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„
  • height: ํ‘œ์‹œํ•  ๋†’์ด
  • width: ํ‘œ์‹œํ•  ๋„ˆ๋น„
  • columns: ํ‘œ์‹œํ•  ์—ด
  • index: ํ‘œ์‹œํ•  ํ–‰ ์ธ๋ฑ์Šค
  • header: ํ—ค๋”๋ฅผ ํ‘œ์‹œํ• ์ง€ ์—ฌ๋ถ€
  • float_format: ์ˆซ์ž ์—ด์˜ ํ˜•์‹
  • grid: ๊ฒฉ์ž๋ฅผ ํ‘œ์‹œํ• ์ง€ ์—ฌ๋ถ€
  • style: ์Šคํƒ€์ผ๋ง
๋ฐ˜์‘ํ˜•