📅  最后修改于: 2023-12-03 15:35:09.995000             🧑  作者: Mango
Streamlit 提供了一个日期时间选择器组件,实现瞬间创建一个交互式 UI,允许用户渐进式探索数据并尝试超越图表的可能性。
import streamlit as st
import datetime
# 单个日期选择器
st.date_input("请选择日期:", datetime.date.today())
# 单个时间选择器
st.time_input("请选择时间:", datetime.time(0, 0))
# 日期时间选择器
st.datetime_input("请选择日期和时间:", datetime.datetime.now())
在上述代码中,我们可以通过调用 st.date_input
、st.time_input
或 st.datetime_input
来创建日期时间选择器。
每个选择器都需要两个传入参数,第一个参数是显示在组件旁边的标签,第二个参数则是当前选定的日期或时间;如果第二个参数未指定,则默认选中当前日期或时间。
在使用上述选择器的同时,我们还可以传递其他参数来修改组件的外观和行为。下面列出了一些常见的选择器参数:
min_value
: 组件可选的最小日期或时间。max_value
: 组件可选的最大日期或时间。key
: 用于识别选择器的ID。format
: 日期或时间的显示格式,使用 strftime 格式化指令。以下代码演示了如何使用日期时间选择器组件。在代码运行后,你可以从下拉框中选择一个时间范围,组件将会筛选符合条件的数据。
import streamlit as st
import pandas as pd
import datetime
df = pd.read_csv("https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv")
min_date = datetime.date(1900, 1, 1)
max_date = datetime.date(2022, 12, 31)
start_date = st.date_input("选择开始日期", min_value=min_date, max_value=max_date)
end_date = st.date_input("选择结束日期", min_value=min_date, max_value=max_date, value=datetime.date.today())
filtered_df = df[(df["Age"] >= (datetime.datetime.combine(start_date, datetime.datetime.min.time())))
& (df["Age"] < (datetime.datetime.combine(end_date, datetime.datetime.min.time())))]
st.write("共计 {0} 条数据符合要求:".format(len(filtered_df)))
st.dataframe(filtered_df)
Streamlit 组件库提供的日期时间选择器允许用户轻松地选择特定日期或时间,帮助开发者实现更为人性化的交互式 UI。除此之外,支持大多数常见的日期时间格式,并具备一定程度的自定义和过滤能力,大幅简化开发者的编程工作。