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

使用pd.read_csv读取CSV时,如何获取datetime.datetime类型而非timestamp?

解决pandas读取CSV时日期列转为datetime.datetime而非Timestamp的问题

首先明确:pandas中的Timestamp是Python原生datetime.datetime的子类,绝大多数场景下可以直接当作datetime对象使用,比如调用strftime()、时间比较等操作都完全兼容。但如果你的业务逻辑必须依赖原生datetime.datetime类型,可以通过以下方式处理:

方法一:读取后批量转换(推荐)

这是最直接可靠的方式,读取完成后对日期列调用.dt.to_pydatetime()方法,即可将整列Timestamp转为原生datetime对象:

import pandas as pd

# 正常读取并解析日期列
df = pd.read_csv('your_data.csv', parse_dates=['date_column'])
# 转换为原生datetime.datetime类型
df['date_column'] = df['date_column'].dt.to_pydatetime()

方法二:读取时自定义解析函数

通过date_parser参数指定自定义解析函数,强制返回datetime.datetime对象。不过需要注意:pandas内部仍可能将其包装为Timestamp,所以这种方式不如方法一稳定,仅在特定场景下适用:

from datetime import datetime
import pandas as pd

# 自定义日期解析函数,根据你的CSV日期格式调整格式字符串
def custom_date_parser(date_str):
    return datetime.strptime(date_str, '%Y-%m-%d')

df = pd.read_csv('your_data.csv', parse_dates=['date_column'], date_parser=custom_date_parser)
# 若结果仍为Timestamp,再调用一次to_pydatetime()即可

总结:如果不是必须用原生datetime,建议直接使用pandas的Timestamp,它提供了更多适配数据分析的功能;如果确实需要原生对象,优先用方法一进行转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 01:45:32