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

使用pandas的dt.date处理DataFrame时遇类型错误求助

问题解决:去除DataFrame时间列的时分秒并转日期格式

你代码里的问题很明确:

  • 你打印的是id列第一个元素的类型,而非time列!当前time列存储的是字符串,不是datetime对象,这就是.dt访问器报错的核心原因。
  • 必须先把字符串类型的时间列转换成pandas的datetime类型,才能使用.dt相关方法。

修正后的代码

import pandas as pd

df = pd.DataFrame({'id': ['45259191000','45488870311'], 'time': ['2022-10-04 08:57:00', '2022-10-07 11:17:00']})
# 第一步:将字符串类型的time列转换为datetime格式
df['time'] = pd.to_datetime(df['time'])
# 提取日期部分(得到Python原生datetime.date对象)
df['new'] = df['time'].dt.date
# 如果你需要字符串格式的日期(比如'2022-10-04'),可以用strftime自定义格式:
# df['new'] = df['time'].dt.strftime('%Y-%m-%d')
display(df)

关键说明

  1. pd.to_datetime()会自动识别你的时间字符串格式,把列转换为pandas的datetime64[ns]类型,这时候才能正常使用.dt访问器。
  2. .dt.date得到的是Python原生的日期对象,如果需要和其他字符串字段配合使用,用dt.strftime()转成指定格式的字符串会更灵活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 19:25:22