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

如何使用Numpy及.astype()方法将日期字符串转换为datetime类型?

用Numpy将自定义格式字符串日期转为datetime类型并存入字典的解决方案

我明白你想用Numpy替代Pandas来处理特定格式的字符串日期转换,还要把结果存入字典对吧?确实Numpy的日期处理API和Pandas不太一样,它没有像pd.to_datetime那样直接带format参数的一站式函数,但我们可以用np.strptime来完美解决这个问题。

核心思路

Numpy默认只识别ISO标准格式的日期字符串(比如YYYY-MM-DD),对于你这种%d%b%Y格式(例如01Jan2023)的自定义日期,需要先用np.strptime指定格式解析字符串,再得到datetime64类型的数组,最后和其他数据一起存入字典。

完整代码示例

假设你的原始数据是Pandas DataFrame,处理步骤如下:

import numpy as np
import pandas as pd

# 模拟你的原始DataFrame
df = pd.DataFrame({
    'Signature': ['Sig_001', 'Sig_002', 'Sig_003'],
    'AMT': [150.8, 320.5, 480.2],
    'Role': ['Editor', 'Viewer', 'Admin'],
    'date': ['05Mar2024', '18Jul2024', '22Oct2024']
})

# 1. 提取日期列转为Numpy数组,用np.strptime指定格式解析
date_datetime64 = np.strptime(df['date'].to_numpy(), "%d%b%Y")

# 2. 将各列数据转为对应Numpy类型并存入字典
result_dict = {
    'Signature': df['Signature'].to_numpy().astype(np.str),
    'AMT': df['AMT'].to_numpy().astype(np.float32),
    'Role': df['Role'].to_numpy().astype(np.str),
    'date': date_datetime64
}

# 验证结果类型
print("日期数组类型:", type(result_dict['date']))
print("日期数组dtype:", result_dict['date'].dtype)

关键说明

  • np.strptime会严格按照你传入的格式字符串(这里是%d%b%Y,对应日+英文缩写月份+年)解析日期字符串,返回的是datetime64类型的Numpy数组,完全符合你的需求。
  • 不要直接用df['date'].astype(np.datetime64),因为这种方式无法识别非ISO标准的自定义日期格式,会直接报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:33:58