Python/pandas 导出到 excel 转换日期时间 (HH:mm)

Posted

技术标签:

【中文标题】Python/pandas 导出到 excel 转换日期时间 (HH:mm)【英文标题】:Python/pandas export to excel converted datatime (HH:mm) 【发布时间】:2021-01-25 22:01:04 【问题描述】:

我对 xlsx 有疑问 - 从 pandas 导出数据透视表。 一切都很好,除了一件事:导出的值数据('job_time')是字符串而不是数据时间类型。 将数据输入 df 后,所有列都是对象类型(包括具有值的列)。 我尝试将其转换为数据时间类型:

df['job_time'] = pd.to_datetime(df.job_time)

它将此列转换为数据时间,但格式为 YYYY-MM-DD HH:MM:SS,我需要 HH:MM。 所以接下来我使用了 dt.strftime:

df.job_time = df.job_time.dt.strftime('%H:%M')

看起来不错,除了一件事:job_time 又是一个对象类型。 导出到excel后的值为文本类型。

所以我的问题是:如何使用 HH:mm 值导出此数据,但导出数据时间,而不是文本?

【问题讨论】:

【参考方案1】:

试试这个:

df['job_time'] = pd.to_datetime(df.job_time, format='%H:%M')
df['job_time'] = df['job_time'].dt.strftime('%H:%M')

【讨论】:

这个选项有问题:“ValueError:未转换的数据仍然存在::00.0000000”。如果我将 %S.%f 添加到格式,则输出为 'YYYY-DD-MM HH:mm:ss.0000000' 向我们展示您的部分数据 print(df.job_time) 0 08:00:00.0000000 1 08:00:00.0000000 2 08:00:00.0000000 ... 有点奇怪。数据来自 SQL,我将 job_time 的时间格式从 time(7) 更改为 time(0)。但它一直显示 7 毫秒的数字。 df['job_time'] = pd.to_datetime 之后的格式为“2020-10-11 08:00:00” 名称:job_time,长度:357,dtype:datetime64[ns] Se 更新了上面的答案。我希望这就是你要找的......

以上是关于Python/pandas 导出到 excel 转换日期时间 (HH:mm)的主要内容,如果未能解决你的问题,请参考以下文章

遇到问题--python--pandas--dataframe进行groupby之后导出数据to_excel内容为空

遇到问题--python--pandas--dataframe进行groupby之后导出数据to_excel内容为空

遇到问题--python--pandas--dataframe进行groupby之后导出数据to_excel内容为空

python pandas如何过滤剔除数据?

python pandas如何查找不同excel表格的数据并对比大小?

Python Pandas根据日期从1个表创建5个excel文件