在Streamlit中结合日期时间输入与DataFrame时间列生成DateTime列
Streamlit实现:输入日期时间 + 秒数列生成DateTime列
核心可运行代码
直接适配需求的完整实现:
import streamlit as st import pandas as pd from datetime import datetime # 替换为你自己的DataFrame(保留Time列即可) df = pd.DataFrame({ 'Time': [1, 2, 3, 4] # 以秒为单位的数值列 }) # 页面布局 st.title("秒数列转DateTime工具") # 拆分日期/时间输入组件 input_date = st.date_input("选择基准日期") input_time = st.time_input("选择基准时间") # 处理逻辑 if input_date and input_time: # 合并日期与时间为完整基准时间 base_datetime = datetime.combine(input_date, input_time) # 生成DateTime列:基准时间 + Time列的秒数 df['DateTime'] = pd.to_datetime(base_datetime) + pd.to_timedelta(df['Time'], unit='s') # 展示结果 st.subheader("原始数据") st.dataframe(df[['Time']]) st.subheader("生成的DateTime序列") st.dataframe(df[['Time', 'DateTime']]) else: st.info("请选择完整的日期和时间")
关键细节说明
- 输入拆分:用
st.date_input和st.time_input分别获取日期、时间,完全匹配你“分别输入”的需求; - 时间运算:通过
pd.to_timedelta把Time列的秒数转为时间差,直接与基准时间相加,逻辑和你终端实现一致; - 容错处理:添加了输入完整性判断,避免空值触发报错;
- 格式自定义:如果需要指定输出的时间格式,可添加
df['DateTime'] = df['DateTime'].dt.strftime("%Y-%m-%d %H:%M:%S")转换。
适配现有代码注意点
- 将示例中的
df替换成你自己的DataFrame,确保Time列是数值类型(int/float)即可; - 如果你的DataFrame是从外部文件读取的,可在代码开头添加
df = pd.read_csv("你的文件路径")之类的读取逻辑。
内容的提问来源于stack exchange,提问作者serdar_bay
相关产品推荐
相关产品推荐

