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

Pandas 1.5.2中astype('datetime64[m]')转换时间戳至分钟级失效问题

解决Pandas 1.5.2中时间戳转分钟精度格式的问题

问题原因

你之前用df['Timestamp'].astype('datetime64[m]')能生效,大概率是因为当时Timestamp列是字符串类型,astype会先将字符串解析为datetime64[m]类型,且Pandas默认显示该精度格式;但现在列可能已转为datetime64[ns]类型,仅修改精度不会改变显示逻辑,仍会保留毫秒信息。

可行解决方案

方案1:截断到分钟+格式化输出(推荐,直接得到目标字符串格式)

先将时间戳截断到分钟精度,再格式化为你需要的字符串格式:

import pandas as pd

# 确保列是datetime类型(如果当前是字符串,先执行这一步)
df['Timestamp'] = pd.to_datetime(df['Timestamp'])

# 截断到分钟并格式化
df['Timestamp_min'] = df['Timestamp'].dt.floor('min').dt.strftime('%Y-%m-%d %H:%M')

执行后Timestamp_min列的结果完全符合你的预期格式。

方案2:修改数据精度+调整显示选项(保留datetime类型)

如果需要保留datetime类型而非字符串,可以先修改精度,再设置全局显示选项隐藏秒级信息:

# 转换为分钟精度的datetime类型
df['Timestamp'] = df['Timestamp'].astype('datetime64[m]')

# 设置全局datetime显示格式,仅显示到分钟
pd.options.display.date_format = '%Y-%m-%d %H:%M'

注意:该设置是全局生效的,会影响所有datetime列的显示样式。

测试验证

用你的样本数据测试方案1,最终输出结果如下:

0    2017-07-11 09:33
1    2017-07-11 09:33
2    2017-07-11 09:33
3    2017-07-11 09:33
4    2017-07-11 09:33
5    2017-07-11 16:20
6    2017-07-11 16:20
7    2017-07-11 16:20
8    2017-07-11 16:20
9    2017-07-11 16:20

内容的提问来源于stack exchange,提问作者user1769197

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 22:35:52