🚀 AI 一键生成 joinquant 策略代码
立即体验
👉 AI 生成代码 👈

JoinQuant 聚宽 get_price 返回数据时间索引格式问题解析与转换方法

joinquant | 发布时间: 2026/6/4
以下内容由 EasyQuant 生成。

问题描述

关于get_price返回数据的问题

文档中get_price返回index应该是2015-01-30 13:57:00这样的格式
但是实际返回的是2005-01-04T10:00:00.000000000这样的格式,我哪里参数没有填对吗?

解决方案

您好!这不是您的参数填写错误,而是由于 Python 中 pandas 库底层数据结构展示方式导致的正常现象。

问题原因解析

在 JoinQuant 中,get_price 函数返回的数据类型是 pandas.DataFrame。这个 DataFrame 的行索引(index)是一个 pandas.DatetimeIndex 时间序列对象。

您看到的 2005-01-04T10:00:00.000000000numpy.datetime64pandas.Timestamp 对象的标准 ISO 8601 字符串显示格式(其中 T 是日期和时间的分隔符,后面跟着的是精确到纳秒的零)。文档中展示的 2015-01-30 13:57:00 只是为了方便阅读而做的简化展示。

解决方法

如果您希望将索引显示或转换为 YYYY-MM-DD HH:MM:SS 这种不带 T 和毫秒的纯字符串格式,可以使用 pandas 提供的 strftime 方法对索引进行格式化。

代码示例:

# 获取分钟级别数据
df = get_price('000001.XSHE', start_date='2015-01-30 13:50:00', end_date='2015-01-30 14:00:00', frequency='1m')

# 打印原始索引,会看到带有 T 和 000000000 的格式
print("原始格式:")
print(df.index)

# 将 DatetimeIndex 转换为指定格式的字符串
df.index = df.index.strftime('%Y-%m-%d %H:%M:%S')

# 再次打印,即可得到您想要的格式
print("\n转换后的格式:")
print(df)

注意:
在量化回测和数据处理中,保留原始的 DatetimeIndex 对象通常更有利于进行时间序列的切片、重采样(Resample)和对齐操作。建议仅在最终输出、打印日志或导出到 CSV 文件时,才将其转换为字符串格式。