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

创建pandas DataFrame时如何直接指定列为datetime64[ns]类型?

报错原因说明

  1. 第一次报错是因为np.datetime64没有指定时间单位,pandas要求时间类型必须明确到具体单位(通常是纳秒ns)
  2. 第二次报错是因为np.datetime64[ns]的写法会被Python解析为「取np.datetime64对象中键为ns的值」,而你没有定义ns变量,所以抛出NameError。

正确实现方式

你可以通过以下两种常用方式在创建DataFrame时直接指定date列为datetime64[ns]类型:

方式1:直接在构造时对日期列调用pd.to_datetime

这是最稳妥、兼容性最高的写法:

import pandas as pd

df = pd.DataFrame(
    {
        "group": ["A", "A", "A", "A", "A"],
        "date": pd.to_datetime(["2020-01-02", "2020-01-13", "2020-02-01", "2020-02-23", "2020-03-05"]),
        "value": [10, 20, 16, 31, 56],
    }
)

方式2:指定dtype为字符串格式的类型标识

将dtype改为字符串形式的'datetime64[ns]'即可避免变量解析错误:

import pandas as pd
import numpy as np

df = pd.DataFrame(
    {
        "group": ["A", "A", "A", "A", "A"],
        "date": pd.Series(
            ["2020-01-02", "2020-01-13", "2020-02-01", "2020-02-23", "2020-03-05"],
            dtype='datetime64[ns]',
        ),
        "value": [10, 20, 16, 31, 56],
    }
)

类型验证

创建完成后可以用以下代码确认列类型符合要求:

print(df.dtypes)

输出中date列的类型会显示为datetime64[ns]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:54:03