主题
python
import streamlit as st
import pandas as pd
import numpy as np
st.write("Got lots of data? Great! Streamlit can show [dataframes](https://docs.streamlit.io/develop/api-reference/data) with hundred thousands of rows, images, sparklines – and even supports editing! ✍️")
num_rows = st.slider("Number of rows", 1, 10000, 500)
np.random.seed(42)
data = []
for i in range(num_rows):
data.append(
{
"Preview": f"https://picsum.photos/400/200?lock={i}",
"Views": np.random.randint(0, 1000),
"Active": np.random.choice([True, False]),
"Category": np.random.choice(["🤖 LLM", "📊 Data", "⚙️ Tool"]),
"Progress": np.random.randint(1, 100),
}
)
data = pd.DataFrame(data)
config = {
"Preview": st.column_config.ImageColumn(),
"Progress": st.column_config.ProgressColumn(),
}
if st.toggle("Enable editing"):
edited_data = st.data_editor(data, column_config=config, use_container_width=True)
else:
st.dataframe(data, column_config=config, use_container_width=True)