You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 20:10:25